所以基本情况是
如果 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) 将是递归的情况,但它是一个封闭的公式。
需要帮忙 !
所以基本情况是
如果 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) 将是递归的情况,但它是一个封闭的公式。
需要帮忙 !
这里有一些伪代码可以帮助你:
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