在java中计算序列的和

时间:2015-09-23 13:49:42

标签: java

我有一个任务是制作一个代码来计算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循环,但这是错误的...... 如何解决? 感谢

4 个答案:

答案 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));

}