1

所以基本情况是
如果 n = 1 然后 2

我试图弄清楚递归情况是什么。

n= 1    f(1) = 2  
n= 2    f(2) = 2 + 4  =  6  
n= 3    f(3) = 2 + 4 + 6 = 12  
n= 4    f(4) = 2 + 4 + 6 + 8 = 20  
n= 5    f(5) = 2 + 4 + 6+ 8 + 10 = 30

我认为 n(n+1) 将是递归的情况,但它是一个封闭的公式。

需要帮忙 !

4

1 回答 1

1

这里有一些伪代码可以帮助你:

function sumeven(int n) {
    if(n == 0) return 0;
    return 2*n + sumeven(n-1);
}

因此,从 5 开始,展开式变为:

n=5 := 5*2 + sumeven(5-1)
n=4 := 5*2 + 4*2 + sumeven(4-1)
n=3 := 5*2 + 4*2 + 3*2 + sumeven(3-1)
n=2 := 5*2 + 4*2 + 3*2 + 2*2 + sumeven(1)
    == 10 + 8 + 6 + 4 + 2 + sumeven(0)
    == 30
于 2013-04-12T06:08:00.163 回答