package test;
import java.util.*;
public class test {
public static void main(String[] args) throws InterruptedException {
Scanner sc=new Scanner(System.in);
System.out.print("请输入数组中数的个数:");
int n=sc.nextInt();
System.out.print("请输入"+n+"个整数:");
int a[]=new int[n];
for(int i=0;i<n;i++)//n个随机数
{
a[i]=sc.nextInt();
}
int b = FindGreatestSumOfSuba(a);
System.out.println("连续子数组的最大和为:"+b);
Thread.sleep(1000);
}
public static int FindGreatestSumOfSuba(int[] a) throws InterruptedException {
int len = a.length;
if (len == 0){
return 0;
}
int[] c = new int[len];
c[0] = a[0];
int d = a[0];
System.out.println("第1步:累加子数组和:"+c[0]+",最大子数组和:"+d);
Thread.sleep(1000);
for(int i=1;i<a.length;i++){
if(c[i-1]>0){
c[i] = c[i-1] + a[i];
}else{
c[i] = a[i];
}
if(c[i] > d){
d = c[i];
}
System.out.println("第"+(i+1)+"步:累加子数组和:"+c[i]+",最大子数组和:"+d);
Thread.sleep(1000);
}
return d;
}
}