使用Java中的递归计算(2n-1)的总和

时间:2017-03-21 14:45:20

标签: java recursion

我需要迭代地和递归地计算这个求和,我已经做了迭代方法并且它工作正常。但我无法弄清楚如何做递归的。

总和将如下:1 + 3 + 5 + 9 + ... + 2n -1

这是迭代的:

    public int dIt(int n) {
    int sum = 0;
    for (int i = 1; i <= n; i = 2 * i - 1) {
        if (i <= 1) {
            sum += i;
            i = 2;
        } else {
            sum += i;
        }
    }
    return sum;
}

是否可以在每次递归通话时都不带计数器?也就是说,只使用n。我认为它必须倒退,从n到0,但我不知道该怎么做。

我知道我还没有这个方法的代码,但是我没有要求这个,我想对如何考虑解决方案提供一些帮助。

提前致谢

2 个答案:

答案 0 :(得分:0)

您需要定义:

1)案例基础:

  if(n==1) return 1

2)步骤:

  else return (doIt(n-1)) + (2*n-1)

答案 1 :(得分:-1)

public int doIt(int n) {
    if (n == 1)
        return 1;
    else
        return 2 * n - 1 + doIt(n - 1);
}