hdoj 1715 斐波那契+大数加法
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[212],b[212],ans[212];
int main()
{
int n;
int i,j,x;
scanf("%d",&n);
while(n--)
{
scanf("%d",&x);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(ans,0,sizeof(ans));
a[0] = 1;
b[0] = 1;
if(x <= 2)
{
printf("1\n");
continue;
}
for(i = 3; i <= x; i++)
{
for(j = 0; j < 220; j++)
{
ans[j] = a[j] + b[j];
if(ans[j] >= 10)
{
a[j+1]++;
ans[j]-=10;
}
}
for(j = 0; j < 220; j++)
{
a[j] = b[j];
b[j] = ans[j];
}
}
for(i = 220; i >= 0; i--)
if(ans[i] != 0)
break;
int num = 0;
for(; i >= 0; i--)
{
printf("%d",ans[i]);
//num++;
}
printf("\n");
//cout<<num<<endl;
}
}