函数递归解法:
#include<stdio.h>
int cn(int n)
{
if(n==0||n==1)
return 1;
else
return cn(n-1)+cn(n-2);}
int main()
{
int n;
long long c;
while(~scanf("%d",&n))
{
c=cn(n);
printf("%lld\n",c);
}
return 0;
}
一般解法:
#include <stdio.h>
int main()
{
int i,n;
int fib[100] = {1,1};
scanf("%d",&n);
for(i=2;i<=n;i++)
{
fib[i] = fib[i-1] + fib[i-2];
}
if(i>n)
printf("%d\n",fib[i-1]);
return 0;
}