之前我们可以用循环去求斐波纳契数列的和
#include<stdio.h>
int fib(int n)
{
int a=1,b=1,c=1;
while(n>2)
{
c=a+b;
a=b;
b=c;
n--;
}
return c;
}
int main()
{
int n=1;
printf("请输入阶数\n");
scanf("%d",&n);
printf("%d\n",fib(n));
return 0;
}
学了递归,之后我们就可以利用数学公式,写出递归去求斐波纳契数列的和
#include<stdio.h>
int fib(int n)
{
if(n<=2)
{
return 1;
}
else
return fib(n-2)+fib(n-1);
}
int main()
{
int n=1;
printf("请输入阶数\n");
scanf("%d",&n);
printf("%d\n",fib(n));
return 0;
}
对比两个两个代码,可知递归的方法更加简单,更容易理解