簡體   English   中英

計算許多整數的總和

[英]Calculate sum of many integers

我已經編寫代碼向我展示了3到1000之間的所有乘法(例如3,6,9,12,15 ...)

我已成功顯示數字,但我想讓程序自動將這些數字加在一起(總計3 + 6 + 9 + 12 + 15 ...)

我目前仍然堅持這個問題,非常感謝幫助! 英語不是我的母語,對於拼寫錯誤等等感到抱歉。

這是我目前的代碼!

public static void main(String[] args) {
    int nr3 = 0;
    int end = 1000; 

     while ( nr3 < end){
         nr3++;
         nr3++;
         nr3++;

         System.out.println(nr3);
     }
}

只需使一個整數(比如int sum = 0 )然后在每個while循環的末尾添加就像

sum += nr3;

然后在循環后打印出總和,你就完成了!

您可以創建一個新的變量sum並將nr3添加到它。 而不是重復調用增量,你可以做nr3 +=3;

    public static void main(String[] args) {
       int nr3 = 0;
       int end = 1000; 
       int sum=0;

       while ( nr3 < end){
          nr3 +=3;
          sum+=nr3;
          System.out.println( nr3);
      }
      System.out.println( sum);
   }

使用以下代碼:

          int nr3 = 0;
          int end = 1000; 
          int sum=0;

           while ( nr3 < end)
           {
               nr3 += 3;
               System.out.println( nr3);
              sum += nr3;
           }
           System.out.println(sum);

你問題的另一個解決方案是暗示一個完全不同的代碼。 它基於以下事實:

  • 將0到n范圍內的某個數p的所有倍數相加,相當於將1到n / p(整數除)范圍內的所有倍數相加,然后乘以p;
  • 對於任何數字x,1 + 2 + ... + x == x *(x + 1)/ 2。

因此代碼很簡單:

public static int allMultiples(final int multipleOf, final int upTo)
{
    final int limit = upTo / multipleOf;
    // The dividend is guaranteed to be an even number:
    // either limit or limit + 1 will be even
    return multipleOf * limit * (limit + 1) / 2;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM