• 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 }
  • 相关阅读:
    P2207 Photo
    P1022 计算器的改良
    P1003 铺地毯
    P3014 [USACO11FEB]牛线Cow Line && 康托展开
    P4180 【模板】严格次小生成树[BJWC2010]
    P2776 [SDOI2007]小组队列
    P2426 删数
    P1948 [USACO08JAN]电话线Telephone Lines
    P1978 集合
    P1564 膜拜
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4803355.html
Copyright © 2020-2023  润新知