一,
- 一般的斐波那契函数 即兔子繁殖问题,当天数n不是很大时,下面的代码可以解决,
- 求第n天兔子的数量(n<=72)
C语代码如下:
//斐波那契函数 兔子繁殖问题
/*
#include<stdio.h>
#include<math.h>
int main()
{
int a[1005],i,n;//用数据a代表数据
while(scanf("%d",&n)!=EOF)//多组测试数据
{
a[0]=0;a[1]=1;a[2]=1;a[3]=2;//前两组是特例 可以优先考虑
for(i=4;i<=n;i++)//满足了一般规律
{
a[i]=a[i-1]+a[i-2];
}
printf("%d\n",a[n]);
}
return 0;
}*/
二,
- 当n>72时,即当兔子数量多的不像话时 推荐使用下面代码:
代码如下:
//斐波那契函数 升级版 当天数n有点足够大时
#include<stdio.h>
#include<string.h>
int a[1000][1000];
int main()
{
int n,m,i,k,c,l;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);l=1;
a[1][0]=1;a[2][0]=1;
for(i=3;i<=m;++i)
{
for(k=0,c=0;k<l;++k)
{
a[i][k]=a[i-1][k]+a[i-2][k]+c;
c=a[i][k]/10;
a[i][k]%=10;
}
while(c>0)
{
a[i][k++]=c%10;
c=c/10;
}
l=k;
}
for(i=l-1;i>=0;i--)printf("%d",a[m][i]);
printf("\n");
}
return 0;
}