Fibonacci Freeze |
The Fibonacci numbers (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...) are defined by the recurrence:
Write a program to calculate the Fibonacci Numbers.
Input and Output
The input to your program would be a sequence of numbers smaller or equal than 5000, each on a separate line, specifying which Fibonacci number to calculate.
Your program should output the Fibonacci number for each input value, one per line.
Sample Input
5 7 11
Sample Output
The Fibonacci number for 5 is 5 The Fibonacci number for 7 is 13 The Fibonacci number for 11 is 89
题目以零开头简直就是误导人。。。
大数加法,打表做
#include <stdio.h> #include <stdlib.h> #include <string.h> int F[5005][305]; int main() { int i,j; F[0][0]=0;F[1][0]=1; for(i=2;i<=5000;i++) { for(j=0;j<=301;j++) F[i][j]=F[i-1][j]+F[i-2][j]; for(j=0;j<=301;j++) { F[i][j+1]+=F[i][j]/10000; F[i][j+0]%=10000; } } int n; while(scanf("%d",&n)!=EOF) { printf("The Fibonacci number for %d is ",n); int end=300; while(end >= 1&&!F[n][end]) end--; printf("%d",F[n][end --]); while(end>=0) printf("%04d",F[n][end--]); printf("\n"); } return 0; }