首页 > 技术文章 > 数组课堂练习2

a1264393659 2016-04-20 10:57 原文

之前发表的时候一直有敏感词汇很久没找出来,后来就忘了发,现补上,望谅解。

设计思想:在原来最大子数组的基础之上,将输入的数组复制一个粘贴到原来的后面。每次循环都扫描起点后输入数字个数个数字。计算数组和,并不断更新最大数组合

程序源代码:

import java.util.Scanner;

public class Arraymax {
    public static void main(String[] args)
    {
        Scanner in=new Scanner(System.in);
        System.out.print("请输入数组长度:");
        int l=in.nextInt();
        
        int[] shuzu =new int [l*2];
        int number_hezuidazhi=0;
        

        System.out.println("请输入数组元素");
        for(int i=0;i<l;i++)
        {
            shuzu[i]=in.nextInt();
            shuzu[i+l]=shuzu[i];
        }
        
        int number_he=shuzu[0];
        
        for(int m=0;m<l;m++)
        { 
            for(int n=m;n<m+l;n++)
            {
                number_he = number_he + shuzu[n];
            
                if(number_hezuidazhi<number_he)
                {
                    number_hezuidazhi=number_he;
                }
            
                if(number_he<0)
                {
                    number_he=0;
                }
            }
            number_he = 0;
        }
        System.out.println("最大数组和为"+ number_hezuidazhi);
        in.close();
    }

}

截图:

推荐阅读