本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1865
本题是大数相加问题,AC代码:
#include<stdio.h>
#include<string.h>
int a[220][300];
void add(int n)
{
int i,j,k;
a[0][0]=1;
a[1][0]=2;
for(i=2;i<n;i++)
{
k=0;
for(j=0;j<300;j++)
{
k+=a[i-1][j]+a[i-2][j];
a[i][j]=k%10;
k/=10;
}
while(k)
{
a[i][j++]=k%10;
k/=10;
}
}
}
int main()
{
int n;
char str[220];
scanf("%d",&n);
getchar();
while(n--)
{
memset(a,0,sizeof(a));
gets(str);
int i,len=strlen(str);
add(len);
for(i=299;;i--)
if(a[len-1][i]) break;
for(;i>=0;i--)
printf("%d",a[len-1][i]);
printf("\n");
}
return 0;
}