[解题报告]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;
}

 

转载于:https://www.cnblogs.com/TheLaughingMan/archive/2013/02/24/2926674.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值