• Hat's Fibonacci(大数,好)


    Hat's Fibonacci

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 9394    Accepted Submission(s): 3065


    Problem Description
    A Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1.
    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.
     
    Input
    Each line will contain an integers. Process to end of file.
     
    Output
    For each case, output the result in a line.
     
    Sample Input
    100
     
    Sample Output
    4203968145672990846840663646
    题解:大数相加超内存,所以想着每个里面存8位;输出的时候不足8位补0;
    代码:
     1 #include<stdio.h>
     2 #include<string.h>
     3 const int MAXN=10100;
     4 const int MAXM=100000000;
     5 char temp[MAXN];
     6 int dp[MAXN][510];
     7 int main(){
     8     dp[0][0]=1;
     9     dp[1][0]=1;
    10     dp[2][0]=1;
    11     dp[3][0]=1;
    12     dp[4][0]=1;
    13     for(int i=5;i<=10000;i++){
    14         for(int j=0;j<=500;j++)dp[i][j]=dp[i-1][j]+dp[i-2][j]+dp[i-3][j]+dp[i-4][j];
    15         for(int j=0;j<=500;j++)
    16             if(dp[i][j]>MAXM)dp[i][j+1]+=dp[i][j]/MAXM,dp[i][j]%=MAXM;    
    17     }
    18     int n;
    19     while(~scanf("%d",&n)){
    20         int j=500;
    21         while(!dp[n][j])j--;
    22         printf("%d",dp[n][j]);
    23         while(--j>=0)printf("%08d",dp[n][j]);//不足8位补零 
    24         puts("");
    25     }
    26     return 0;
    27 }
  • 相关阅读:
    2019秋季 关于C语言指针等探索
    第四次作业
    第三次作业
    错误总结
    第二次作业
    第一次随笔
    Linux Mint安装Docker踩坑指南
    浅论Javascript在汽车信号测试中的应用
    [瞎玩儿系列] 使用SQL实现Logistic回归
    MongoDB的账户与权限管理及在Python与Java中的登录
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4803355.html
Copyright © 2020-2023  润新知