码迷,mamicode.com
首页 > 其他好文 > 详细

软件工程第三次作业

时间:2018-04-01 16:03:19      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:整数   generated   百度   pos   技术分享   equal   static   图片   题目   

1、题目背景
问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n例如,当(a[1],a[2],a[3],a[4],a[5],a[6])(-2,11,-4,13,-5,-2)时,最大子段和为20。
-- 引用自《百度百科》

2、程序代码

public class pigl 
{
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        int a[]={2,5,-4,3,4,-6,5};
        int sum;
        sum=Max(a,7);
        System.out.println("sum="+sum);
    }
   public static int Max(int []a,int n) {
        int high=0,ai=0;
        int sum=-100;
        int i,j,k;
        for(i=0;i<n;i++)
        {
            for(j=i;j<n;j++)
            {
                int wait=0;
                for(k=i;k<=j;k++)
                {
                    wait=wait+a[k];
                }
                if(wait>sum)
                {
                    sum=wait;
                    ai=i;
                    high=j;
                }
            }
        }
        ai = ai + 1;
        high = high + 1;
        System.out.println("first="+ai);
        System.out.println("finish="+high);
        return sum;
    }

}

3、测试代码

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class piglTest {

    @Test
    void test()
    {
        int a [] = {2,5,-4,3,4,-6,5};
        assertEquals(10,new pigl().Max(a, 7));
    }

}

4、测试结果

技术分享图片

技术分享图片

5、覆盖方法

(1)语句覆盖
(2)判定覆盖
(3)条件覆盖
(4)判定/条件覆盖
(5)条件组合覆盖

选择条件覆盖

样例1{-2,11,-4,13,-5,-2}为给定测试用例,结果为20。
技术分享图片

软件工程第三次作业

标签:整数   generated   百度   pos   技术分享   equal   static   图片   题目   

原文地址:https://www.cnblogs.com/liushiqi/p/8686823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!