结对开发五--对一千个数long型的一维数组求最大子数组的和
一、设计思想
我们根据第一个实验,再让他自动生成1000个随机long型数。大致思想和实验一一样,自己已埋入炸弹。
二、实验代码
package com.minirisoft; import java.util.*; class SuperMax { public static void main(String[] args) { long[] list = new long[1000];//输入数组是必须先定义数组,否则出错! long[] arr1 = new long[1000];//输入数组是必须先定义数组,否则出错! System.out.println("请输入数组:"); for(int k=0;k<1000;k++) { Random t=new Random(); list[k]=t.nextLong(); if(k==500) list[500]=(long)Math.pow(2,10000); } for(int n=0;n<999;n++) { arr1[n]=list[n]; for(int m=n;m<999;m++) { arr1[m+1]=arr1[m]+list[m+1]; } for(int m=n;m<1000;m++) { if(arr1[m]>arr1[n]) { arr1[n]=arr1[m]; } } System.out.println("从第"+(n+1)+"个元素辐射的最大子数组的和为"+arr1[n]); } arr1[999]=list[999]; System.out.println("从第1000个元素辐射的最大子数组的和为"+arr1[999]); for(int i=0;i<1000;i++) { if(arr1[i]>arr1[0]) { arr1[0]=arr1[i]; } } System.out.println("最大子数组的和为"+arr1[0]); } }
三、实验结果
。
。
。
四、心得体会
这次实验,让我懂得要考虑数的类型,看是否越界。但现在自己做得程序感觉很疑惑。明明是long型的长度范围到2^64但已得到的数超过次数,但没报错。
五、小组成员:杨广鑫,郭健豪
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。