http://acm.hdu.edu.cn/showproblem.php?pid=1715
大菲波数,用大数相加来做,打表后查表
#include<stdio.h> int f[1010][300]; int main() { int i,j,n,t; scanf("%d",&t); f[2][0]=f[1][0]=1; for(i=3;i<1001;i++) { for(j=0;j<300;j++) f[i][j]=f[i-1][j]+f[i-2][j]; for(j=0;j<300;j++) if(f[i][j]>9) { f[i][j+1]+=f[i][j]/10; f[i][j]%=10; } } while(t--) { scanf("%d",&n); i=299; while(f[n][i]==0)i--; while(i>=0) printf("%d",f[n][i--]); printf("\n"); } return 0; }