#include<stdio.h>
#include<string.h>
#define MAX 500
int main()
{
int i,j,n,m;
int shu1[MAX],shu2[MAX],shu3[MAX];
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
memset(shu1,0,sizeof(shu1));
memset(shu2,0,sizeof(shu2));
memset(shu3,0,sizeof(shu3));
shu1[0]=1;
shu2[0]=1;
shu3[0]=1;
if(m==1||m==2)
{
printf("1\n");
continue;
}
for(i=0;i<m-2;i++)
{
for(j=0;j<MAX;j++)
shu3[j]=shu1[j]+shu2[j];
for(j=0;j<MAX;j++)
if(shu3[j]>9)
{
shu3[j]-=10;
shu3[j+1]++;
}
for(j=0;j<MAX;j++)
{
shu1[j]=shu2[j];
shu2[j]=shu3[j];
}
}
for(i=MAX-1;i>=0;i--)
if(shu3[i])
break;
for(j=i;j>=0;j--)
printf("%d",shu3[j]);
printf("\n");
}
return 0;
}
这道题目考虑到了大数相加,一开始没想那么多,这种方法还是借用别人的思路来做的,看来自己还是太虚弱了。。。。。。。
大菲波数
最新推荐文章于 2020-05-23 09:06:19 发布