之前发表的时候一直有敏感词汇很久没找出来,后来就忘了发,现补上,望谅解。
设计思想:在原来最大子数组的基础之上,将输入的数组复制一个粘贴到原来的后面。每次循环都扫描起点后输入数字个数个数字。计算数组和,并不断更新最大数组合
程序源代码:
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(); } }
截图:
时间: 2024-11-03 09:06:41