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

结对开发五--对一千个数long型的一维数组求最大子数组的和

时间:2015-03-30 17:50:56      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

一、设计思想

 我们根据第一个实验,再让他自动生成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但已得到的数超过次数,但没报错。

五、小组成员:杨广鑫,郭健豪

技术分享

结对开发五--对一千个数long型的一维数组求最大子数组的和

标签:

原文地址:http://www.cnblogs.com/tianyaguying/p/4378282.html

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