计算两个连续数的乘积之和的方法

时间:2016-06-11 06:11:33

标签: java methods arithmetic-expressions

编写Java方法来计算以下总和: 2×3 + 3×4 + 4×5 + ... + 97×98 + 98×99

或更常见的是i = 2到98的总和i *(i + 1)。

这可以通过递归或仅使用for / while循环来完成吗?

1 个答案:

答案 0 :(得分:0)

好吧,因为你有一个产品从每个数字开始(从2到98),这是相当直接的。您需要做的就是循环遍历2到98之间的所有数字(使用for循环)然后在此循环中将计数器变量和计数器变量+ 1的乘积添加到sum变量中,该变量在0之前初始化为0循环。

int sum = 0;

for (int i = 2; i < 98; i++) {
    sum += i * (i + 1)
}

每当你有重复模式时,你可能不得不使用一个循环。

还有另一种方法:总和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开头。