该题共有三种情况:
1.n为0,f(n)=0
2.n为1或者2,f(n)=1
3.n为其余情况,递归求f(n)
前两种情况使用if语句即可
if(n==0)
return 0;
if(n<=2&&n!=0)
return 1;
第三种情况使用递归或者其他方法都可以,笔者在此使用了递归
else
return fib(n-1)+fib(n-2);
递归代码解释:
假设n=4,在fib函数中执行return fib(n-1)+fib(n-2)这条语句,即return fib(3)+fib(2);fib(3)即为n=3,在fib函数中执行return fib(2)+fib(1);又因fib(1)+fib(2)=1+1=2,所以fib(3)返回了2给了fib(4),所以fib(3)+fib(2)=2+1=3。最终返回了3给主函数。
函数递归详细介绍:函数递归复习
简单难度递归相关leetcode题目链接(无链表):
2. leetcodeLCR 187题:破冰游戏(C语言+约瑟夫环)