结对开发五--最大子数组的和(大数溢出)

一、设计思路

   根据上一个实验,再让他自动生成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 }

三、实验截图

四、心得体会

  这次试验虽然挺简单的,但是学到了一种思想,在以后的编程中,还得注意可能会出现的问题,就是不会出现问题,自己也可以为程序设置出错点,让自己更了解程序的运行机制,更加了解程序的内部运行。

五、有图有真相

posted @ 2015-03-30 18:31  Gjianhao  阅读(133)  评论(0编辑  收藏  举报