• 结对开发五--对一千个数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但已得到的数超过次数,但没报错。

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

  • 相关阅读:
    网络基础
    关于actionscript中新建一个sprite,设置大小(宽高)的问题。
    Android SDK无法更新问题解决 ---- 还可解决无法上google的问题
    android apk简单反编译
    Flash的坑之ExternalInterface.call只返回null值的解决办法
    Flash Socket简单调试工具
    进制转换 正进制
    Codeforces Div3 #498 A-F
    UVa10082
    div与div之间的拖拽
  • 原文地址:https://www.cnblogs.com/tianyaguying/p/4378282.html
Copyright © 2020-2023  润新知