编写Java方法来计算以下总和: 2×3 + 3×4 + 4×5 + ... + 97×98 + 98×99
或更常见的是i = 2到98的总和i *(i + 1)。
这可以通过递归或仅使用for / while循环来完成吗?
答案 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开头。