计算许多整数的总和

时间:2015-07-03 15:00:14

标签: java

我已编写代码向我展示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);
     }
}

4 个答案:

答案 0 :(得分:2)

只需创建一个整数(比如int sum = 0)然后在每个while循环的末尾添加

sum += nr3;

然后在循环后打印出总和,你就完成了!

答案 1 :(得分:1)

您可以创建新变量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);
   }

答案 2 :(得分:0)

使用以下代码:

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

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

答案 3 :(得分:0)

您的问题的另一个解决方案意味着代码完全不同。它基于以下事实:

  • 将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;
}