我有一个任务是制作一个代码来计算1 * 2 + 3 * 4 + 5 * 6 + ... +(2 * n-1)*(2n) ......这是我的代码
public class Tetris {
public static int sumOfProd(int n) {
int sum = (2*n-1)*(2*n);
return sum;
}
public static void main(String[] args) {
for (int n=1; n<10; n++){
System.out.println(sumOfProd(n));
}
}
}
代码有效,但它不计算所有迭代的总和。 我的输出是
2
12
30
56
90
132
182
240
306
但是我想要打印出所有这些值的总和..我试图将sum ++放在sumOfProd方法中,但是它不起作用,我试图设置一个for循环,但这是错误的...... 如何解决? 感谢
答案 0 :(得分:0)
将您的主要内容更改为:
public static void main(String[] args) {
int sum = 0;
for (int n=1; n<10; n++){
sum += sumOfProd(n);
System.out.println(sum);
}
我添加了int变量sum,起始值为0.对于每次迭代,我们添加sumOfProd返回的内容。
答案 1 :(得分:0)
您需要递归或迭代总和。 由于您已经有了迭代,因此以后一种方式修改代码应该更容易:
public class Tetris {
public static int sumOfProd(int n) {
int sum = 0;
int i = 2;
while (i <= n){
sum = sum + (2*i-1)*(2*i);
i = i+2;
}
return sum;
}
public static void main(String[] args) {
System.out.println(sumOfProd(10));
}
}
答案 2 :(得分:0)
您期望得到什么结果?
public static int sumOfProd(int n) {
int sum = 0;
for (int i = 2; i <= 2 * n; i += 2) {
sum += i * (i - 1);
}
return sum;
}
产生
2
14
44
100
190
322
504
744
1050
答案 3 :(得分:0)
检查这个
public static int sumOfProd(int n) {
int sum;
if(n>0)
{
sum = (2*n-1)*(2*n)+sumOfProd(n-1);
}
else
{
sum =0;
}
return sum;
}
public static void main(String[] args) {
int n =10;
System.out.println(sumOfProd(n));
}