一、设计思路
根据上一个实验,再让他自动生成1000个随机long型数。并且自己埋入炸弹,看是否有异常出错。
二、实验代码
1 import java.util.*; 2 class SuperMax3 3 { 4 public static void main(String[] args) 5 { 6 long[] list = new long[1000];//输入数组是必须先定义数组,否则出错! 7 long[] arr1 = new long[1000];//输入数组是必须先定义数组,否则出错! 8 System.out.println("请输入数组:"); 9 for(int k=0;k<1000;k++) 10 { 11 Random t=new Random(); 12 list[k]=t.nextLong(); 13 if(k==500) 14 list[500]=(long)Math.pow(2,10000); 15 } 16 for(int n=0;n<999;n++) 17 { 18 arr1[n]=list[n]; 19 for(int m=n;m<999;m++) 20 { 21 arr1[m+1]=arr1[m]+list[m+1]; 22 } 23 for(int m=n;m<1000;m++) 24 { 25 if(arr1[m]>arr1[n]) 26 { 27 arr1[n]=arr1[m]; 28 } 29 } 30 System.out.println("从第"+(n+1)+"个元素辐射的最大子数组的和为"+arr1[n]); 31 } 32 arr1[999]=list[999]; 33 System.out.println("从第1000个元素辐射的最大子数组的和为"+arr1[999]); 34 for(int i=0;i<1000;i++) 35 { 36 if(arr1[i]>arr1[0]) 37 { 38 arr1[0]=arr1[i]; 39 } 40 } 41 System.out.println("最大子数组的和为"+arr1[0]); 42 } 43 }
三、实验截图
四、心得体会
这次试验虽然挺简单的,但是学到了一种思想,在以后的编程中,还得注意可能会出现的问题,就是不会出现问题,自己也可以为程序设置出错点,让自己更了解程序的运行机制,更加了解程序的内部运行。
五、有图有真相
时间: 2024-10-26 06:46:38