1. 找出斐波那契数列第n个数(递归)
int fun(int n)
{
if (n == 0) return 0;
else if (n == 1) return 1;
else return (fun(n - 1) + fun(n - 2));
}
这里我们可以用数学推理 假设要找第四个斐波那契数
return fun(4-3)+fun(4-2)=fun(3)+fun(2);
然后再进入函数就相当于 fun(2)+fun(1)+fun(1)+fun(0)
再进入函数 相当于fun(1)+fun(0) +fun(1)+fun(1)+fun(0);
然后我们在这里n==0就返回0 ,n=1就返回1,这样 最后结果就是1+0+1+1+0=3;
最后传参进去fun(1)==1;fun(0)==0;
2.第n个斐波那契数非递归
int a = 0;
int b = 1;
int sum = 0;
if (n == 0)
return 0;
if (n == 1)
return 1;
for (int i = 0; i < n - 1; i++)
{
sum = a + b;
a = b;
b = sum;
}
return sum;
这个就是一个简单的递归思想