#1
//1 1 2 3 5 8 13 21 34 55 89
1 1
2 1+1
3 (1+1)+2
4 (1+1+2)+3
5 (1+1+2+3)+5
6 (1+1+2+3+5)+8
fun(1)==1
fun(2)==fun(1)+1
fun(3)==fun(2)+2
fun(4)==fun(3)+3
fun(5)==fun(4)+5
fun(6)==fun(5)+8
sumfun(0)==0
sumfun(1)==sumfun(0)+1
sumfun(2)==sumfun(1)+1
sumfun(3)==sumfun(2)+2
sumfun(4)==sumfun(3)+3
sumfun(5)==sumfun(4)+5
sumfun(6)==sumfun(5)+8
可以看到,sumfun求和递归时,应是前一个求和值加一个斐波那契数列,数列生成用如下递归
fiber(1)==1
fiber(2)==1
fiber(3)==fiber(1)+fiber(2)
fiber(4)==fiber(2)+fiber(3)
fiber(5)==fiber(3)+fiber(4)
即fiber(1)=1,fiber(2)=1,n>2则fiber(n)=fiber(n-1)+fiber(n-2)
因此,sumfun的递归表述为:sumfun(0)=0,n>0则sumfun(n)==sumfun(n-1)+fiber(n)
原理如下,代码你自己来,祝你成功