码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-03-30 20:23:54      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

一、设计思路

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

三、实验截图
技术分享

四、心得体会

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

五、有图有真相

技术分享

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

标签:

原文地址:http://www.cnblogs.com/KevinBin/p/4378812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!