【问题标题】:New to Java & Series [closed]Java和系列的新手[关闭]
【发布时间】:2014-05-19 19:17:02
【问题描述】:

我是 Java 和系列的新手(使用 Java 以某种方式总结编号)。

用户需要输入n(一个正偶数)。这可以是 0、2、4 以及以上 2 的任何增量。

如果我输入 4,Java 必须计算 2 + 4 = 6。如果我输入 6,Java 必须计算 2 + 4 + 6 = 12。Java 需要对输入 n 进行如下求和... 2 + 4 + 6 + ... + n = 一些总和。我想看看如何通过循环来完成。以下是我的尝试。我们只是假设用户将输入一个正偶数,例如 2、4、6、8 或 10 等等(因此我们不必对此进行测试)。

Scanner console = new Scanner(System.in);
int sum = 0, n;
System.out.println("Give me a positive even integer.");
n = console.nextInt();

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

System.out.println(sum);

同样,重点是从 2 到用户给出的正偶数相加。

【问题讨论】:

  • 你的代码有什么问题?
  • 已澄清。现在不应该暂停。

标签: java loops while-loop series


【解决方案1】:

您的循环条件(sum &lt; n) 不正确,因为sum 很快就会大于最终期限值n

但是,您可以在没有循环的情况下执行此操作:

sum = n / 2 * (2 + (n / 2 - 1))

正如您所描述的,n 是均匀且积极的。这来自算术级数总和的公式。

如果你真的想使用for循环然后使用

int sum = 0;
for (int i = 2; i <= n; i += 2){
    sum += i;
}

或者,如果您想要while,请使用

int sum = 0;
{ /*extra scoping block so we don't emit i*/
    int i = 0;
    while ((i += 2) <= n){
        sum += i;
    }
}

注意到(i += 2) 是一个表达式,计算结果为i 的递增值。

【讨论】:

  • 您知道如何严格使用循环来执行此操作吗?我希望仅使用循环来执行此操作。
  • @LisaSmith:已添加,但请注意,它不如使用分析结果有效。
  • 谢谢。我同意。我之前至少做过系列,但我需要做一个循环。如果我可以出于好奇再问一件事……您将如何使用 while 循环来做到这一点?
  • @LisaSmith:我添加了一个while 案例。
【解决方案2】:

试试这个方法:

Scanner console = new Scanner(System.in);
try {
    System.out.println("Give me a positive even integer.");
    int n = console.nextInt() / 2;
    int sum = 0;
    for (int i = 1; i <= n; i++) sum += 2 * i;
    System.out.println(sum);
} finally { console.close(); }

此外:它还处理奇数并释放控制台,这是一种资源。

【讨论】:

    【解决方案3】:

    现在,您的代码总是将总和加 2。但是,您想添加增加 2 的数字。所以基本上,您需要另一个变量来计算您所在的系列 2、4、6 中的当前元素。

    int index = 2;
    while( index <= n ) {
        sum = sum + index;
        index = index + 2;
    }
    

    【讨论】:

    • 那不行,对吧?我输入了 10,它给了我 20。答案应该是 2 + 4 + 6 + 8 + 10 = 30,对吧?
    • 是的,你是对的。最后的 n 没有计算在内。条件应该是索引
    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多