Hat's Fibonacci
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5890 Accepted Submission(s): 1944
F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4)
Your task is to take a number as input, and print that Fibonacci number.
100
4203968145672990846840663646代码:#include<stdio.h> #include<string.h> int ans[10000][260]; int main() { int n,i,j; while(scanf("%d",&n)!=EOF) { memset(ans,0,sizeof(ans)); ans[0][0]=ans[1][0]=ans[2][0]=ans[3][0]=1; if(n<5) printf("1\n"); else { for(i=4;i<n;i++) { for(j=0;j<260;j++) { ans[i][j]=ans[i-1][j]+ans[i-2][j]+ans[i-3][j]+ans[i-4][j]; } for(j=0;j<260;j++) { if(ans[i][j]>=100000000) { ans[i][j+1]+=ans[i][j]/100000000; ans[i][j]%=100000000; } } } for(j=259;j>=0 && ans[n-1][j]==0;j--) ; printf("%d",ans[n-1][j]); j--; for(;j>=0;j--) { printf("%08d",ans[n-1][j]); } printf("\n"); } } return 0; }