1 import java.util.Scanner; 2 3 public class Ceshi { 4 public static void main(String args[]){ 5 Scanner sc=new Scanner(System.in); 6 int L; 7 System.out.println("请输入数组长度"); 8 L=sc.nextInt(); 9 int a[]=new int[L]; 10 int c[]=new int[L]; 11 int sum1[]=new int[L]; 12 int d=sum1[0]; 13 System.out.println("请输入要进行处理的数(L个):"); 14 for(int i=0;i<L;i++) 15 { 16 c[i]=sc.nextInt(); 17 } 18 for(int j=0;j<L;j++){ 19 for(int k=0;k<L;k++){ 20 a[k]=c[(j+k)%L]; 21 } 22 int sum=a[0]; 23 int b=0; 24 for(int i=0;i<L;i++){ 25 if(b<0) 26 { 27 b=a[i]; 28 } 29 else{ 30 b+=a[i]; 31 } 32 if(sum<b){ 33 sum=b; 34 } 35 sum1[j]=sum; 36 } 37 if(d<sum1[j]){ 38 d=sum1[j]; 39 } 40 } 41 System.out.print("最大子数组和为:"+d); 42 } 43 44 }
设计思路: 我们坐了数组中求最大和 还要在循环数组中求取,按照下标一个一个的找,大于零的加起来 ,