【发布时间】:2016-10-12 03:35:51
【问题描述】:
编写一个 Java 方法来计算以下总和: 2×3+3×4+4×5+...+97×98+98×99
或者更一般地说,从 i = 2 到 98 的 i*(i+1) 之和。
这可以通过递归还是仅使用 for/while 循环来完成?
【问题讨论】:
-
书面并发送。请检查您的邮件。
标签: java methods arithmetic-expressions
编写一个 Java 方法来计算以下总和: 2×3+3×4+4×5+...+97×98+98×99
或者更一般地说,从 i = 2 到 98 的 i*(i+1) 之和。
这可以通过递归还是仅使用 for/while 循环来完成?
【问题讨论】:
标签: java methods arithmetic-expressions
您有一个以每个数字(从 2 到 98)开头的产品,这相当简单。您需要做的就是遍历从 2 到 98 的所有数字(使用 for 循环),然后在此循环中,将 counter 变量和 counter 变量 + 1 的乘积添加到 sum 变量中,该变量在循环。
int sum = 0;
for (int i = 2; i < 98; i++) {
sum += i * (i + 1)
}
只要你有一个重复的模式,你就可能不得不使用一个循环。
还有另一种方法:Sum i * (i + 1) 这与求和 i ^ 2 + i 相同,并且有前 n 个数字和前 n 个平方数之和的公式(更多关于 this question 中的那些) .当您添加到公式时,您会得到1/3 * n ^ 3 + n ^ 2 + 2/3 * n,它将为您提供前 n 个平方和前 n 个自然数相加的总和。然后,您可以将 n 设置为 98(如您的问题所示)并减去 2,因为您不是从 1 开始,而是从 2 开始。
【讨论】: