这就是简单的嵌套
就是套娃:
f(8)=f(7)+f(6)
=(f(6)+f(5))+(f(5)+f(4))
=……
可以去查查斐波那契数列
代码是求斐波那契数列的递归算法,供参考:https://baike.baidu.com/item/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97/99145?fr=aladdin
此题是典型的递归函数,
首先看清楚switch语句没有break;,所以当参数为2时函数就开始返回了,我们可以用逆推计算出结果。
f3=f2+f1=2
f4=f3+f2=3
f5=f4+f3=5
f6=f5+f4=8
f7=f6+f5=13
f8=f7+f6=21
----->f(8)=f(7)+f(6)
----->f(7)=f(6)+f(5) f(6)=f(5)+f(4)
----->f(5)+f(4) f(4)+f(3) f(4)+f(3) f(3)+f(2)
----->f(4)+f(3) f(3)+f(2) f(3)+f(2) f(2)+f(1) f(3)+f(2) f(2)+f(1) f(2)+f(1) f(1)+f(0)
----->f(3)+f(2) f(2)+f(1) f(2)+f(1) f(2) f(2)+f(1) f(2) f(2)+f(1).........................
.....
直接解法就是按顺序深入嵌套
或者
f(1)=1
f(2)=1
f(3)=f(1)+f(2)=2
f(4)=f(3)+f(2)=2+1=3
f(5)=f(4)+f(3)=3+2=5
f(6)=f(5)+f(4)=5+3=8
f(7)=f(6)+f(5)=8+5=13
f(8)=f(7)+f(6)=13+8=21
这就是递归,自己调用自己,每次调用总会改动一个关键变量,直到这个关键变量达到边界的时候,不再调用。你先理解递归之后,主要是递归的三大要素,网上会很多讲递归的,最后再看这段程序就马上明白了。