如何创建计算一组数字(Java)总和的程序?

时间:2018-01-15 01:40:15

标签: java

我从MOOC学习Java并且坚持这个练习:

Exercise

真的遇到这个问题。我能够创建一个程序,该程序可以计算用户所选的数字(如下),但仍坚持如何将所有数字添加到变量 n

public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);

    int start = 0;

    System.out.println("Until which number? ");
    int n = Integer.parseInt(reader.nextLine());

    System.out.println("Counting begins now...");

    while (start <= (n - 1)) {
        System.out.println(start += 1);
    }

}

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

int sum = 0;

while (start <= n) {
    sum += start;
    ++start;
}

System.out.println(sum);

根据您的指南,您需要记录迭代次数start,并且需要计算存储在其自己的变量sum中的总和。

start需要每次迭代递增

sum需要是其先前的值加上start的当前值

答案 1 :(得分:0)

您走在正确的轨道上,首先要获得同一行的输入(例如在任务的预期输出中),请使用print而不是println

然后基本上只跟踪两个“helper”变量countsum,并且只在while循环之外打印变量sum的值:

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("Until what?");
    int n = scanner.nextInt();

    int count = 0;
    int sum = 0;
    while(count <= n) {
      sum += count; // increment the sum variable by the value of count
      count++; // increment the count variable by 1
    }

    System.out.println("Sum is " + sum);
  }
}

NB 此外,我已使用扫描程序方法 nextInt() 而不是您的Integer.parseInt解决方案,在将来,您可能希望将此配对与返回布尔值的 hasNextInt() 进行配对,以确保在用户输入除Integer之外的其他内容时程序不会崩溃。

示例用法1:

Until what? 3
Sum is 6

示例用法2:

Until what? 7
Sum is 28

尝试 here!