[解题报告]495 - Fibonacci Freeze

 Fibonacci Freeze 

The Fibonacci numbers (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...) are defined by the recurrence:

eqnarray20

 

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;
}

 

posted @ 2013-02-24 23:35  三人木君  阅读(214)  评论(0编辑  收藏  举报