你的位置:首页 > Java教程

[Java教程]数组课堂练习


设计思想:

数组内有正数有负数,先遍历寻找数组内第一个正数,并将其设置为最大值。开始往后加,一旦和是负数,就舍弃前边的数,从当前位置继续往后加,每一次相加后都会和最大值比较,如果小于最大值就不记录,不然记录为最大值。

代码:

import java.util.Random;public class ArrayAdd {  public static void main(String args[]){      int a[]=new int[10];      for(int i=0;i<10;i++)      {        a[i]=new Random().nextInt()%30;        System.out.print(a[i]+" ");      }      System.out.println();      int max=0;      int Sum=0;      int Start=0;      int start=0;      int end=0;      for(int i=0;i<10;i++)      {        if(i==0)        {          Sum=max=a[i];          continue;        }                   if(Sum<0)        {          Sum=0;          Start=i;        }        Sum+=a[i];        if(Sum>max)        {          max=Sum;          start=Start;          end=i;        }      }             System.out.println("和最大的子数组为:");      for(int i=start;i<=end;i++)      {        System.out.print(ary[i]+"+");      }      System.out.print("="+max);  }}

截图:

总结:

要想解决问题,先学好数学。