这道题主要是在求最大整数数组的基础上实现循环数组的实现
主要是基于两个问题:如何解决循环和如何解决求最大子数组
我解决循环的办法就是将数组长度扩大到两倍
最大子数组就是用动态规划
下面是java代码:
package first; import java.util.Scanner; public class xunhuan { public static void main(String[] args) { // TODO Auto-generated method stub int i,j; int sum=0; int count=1; int max; Scanner sc=new Scanner(System.in); System.out.print("输入数组的长度: "); i=sc.nextInt(); int length=i*i; int []x=new int[i]; int []y=new int[2*i-1]; int []z=new int[length]; System.out.println("请输入数组元素"); for(i=0;i<x.length;i++) { x[i]=sc.nextInt(); } for(i=0;i<y.length ;i++) { if(i<x.length) { y[i]=x[i]; } else y[i]=x[i-x.length]; } System.out.println(" "); for(i=0;i<x.length;i++) { sum=0; for(j=i;j<i+x.length;j++) { sum=sum+y[j]; z[count-1]=sum; count++; } } max=z[0]; for(i=0;i<z.length;i++) { if(max<z[i]) max=z[i]; } System.out.println("最大子数组的和为:"+max); } }