程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 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);
    }
}

截圖:

總結:

要想解決問題,先學好數學。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved