这题属于简单大数题,开始时 wa了几次,之后把数组开大了一点就ac了!!!
代码:
#include<stdio.h> #include<string.h> int a[1005][550]; int main() { int i,j,c,n; memset(a,0,sizeof(a)); a[1][0]=1; a[2][0]=1; for(i=3;i<=1000;i++) { c=0; for(j=0;j<500;j++) { if(a[i-1][j]+a[i-2][j]+c>=10) { a[i][j]=a[i-1][j]+a[i-2][j]+c-10; c=1; } else { a[i][j]=a[i-1][j]+a[i-2][j]+c; c=0; } } } int T; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=500;i>=0;i--) if(a[n][i]!=0) break; for(j=i;j>=0;j--) printf("%d",a[n][j]); printf("\n"); } return 0; }