首先输入数组中所有的数,然后加出所有满足的和,然后一一比对。
import java.util.Scanner; public class shuzu { public static void main(String args[]) { Scanner s=new Scanner(System.in); System.out.println("请输入数组数目:"); int sum=s.nextInt(); int []a=new int[sum]; System.out.println("请输入"+sum+"个数:"); for(int i=0;i<sum;i++) { a[i]=s.nextInt(); } s.close(); int sum1=0; for(int i=1;i<=sum;i++) { sum1=sum1+i; } int [] b=new int[sum1]; int temp1=0; for(int i=0;i<sum;i++) { int temp=0; for(int k=0;k<sum-i;k++) { temp=temp+a[i+k]; b[temp1]=temp; temp1++; } } for(int i=0;i<sum1-1;i++) for(int k=0;k<sum1-1-i;k++) { if(b[k]<b[k+1]) { int temp2=b[k]; b[k]=b[k+1]; b[k+1]=temp2; } } System.out.println("最大的子数组和为"+b[0]); } }
本次实验我发现我对算法的研究还差得远,Java的知识点也忘了很多,以后还需要时常温习。