zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    16进制数至字符串转换
    综合评价模型C++实现
    综合评价模型
    Eigen使用矩阵作为函数参数
    Eigen子矩阵操作
    Eigen矩阵基本运算
    c++矩阵运算库Eigen简介
    三次样条插值算法C++实现
    一个 图片 滚动 飞入的css特效
    在TTF字体中提取想要的文字
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4803355.html
Copyright © 2011-2022 走看看