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
Note:
No generated Fibonacci number in excess of 2005 digits will be in the test data, ie. F(20) = 66526 has 5 digits.

纪念构建大数模板成功!!!!!(大一上学期写的,所以代码有点糙,献丑了0.0)

代码:
#include

using namespace std;

vectorv;

string big_num(string nl,string ml)

{

    //cout<<nl<<" "<<ml<<endl;

    string str="";

    int t,len,lon,j,x=1,l,m[2050],n[2050];

    memset(m,0,sizeof m);

    memset(n,0,sizeof n);

    j=0;

    len=nl.size();

    lon=ml.size();

    for(int i=len-1;i>=0;i--)

    {

        n[i]=nl[j++]-'0';

        //cout<<n[i]<<endl;

    }

    j=0;

    for(int i=lon-1;i>=0;i--)

    {

        m[i]=ml[j++]-'0';

    }

    if(len

    l=lon;

    else

    l=len;

    for(int j=0;j<=l-1;j++)

    {

        n[j]+=m[j];

        if(n[j]>=10)

        {

            n[j+1]=n[j+1]+1;

            n[j]=n[j]-10;

        }

    }

    if(n[l]==0)

    {

        //cout<<n[0]<<endl;

        for(int i=l-1;i>=0;i--)

        {

            str+=(n[i]+'0');

            //cout<<str<<endl;

            //cout<<n[i];

        }

        return str;

    }

    else

    {

        for(int i=l;i>=0;i--)

        {

            str+=(n[i]+'0');

            //cout<<str<<endl;

        }

        //cout<<n<<endl;

        return str;

    }

}

void solve()

{

    v.push_back("1");

    v.push_back("1");

    v.push_back("1");

    v.push_back("1");

    v.push_back("1");

    for(int i=5;;i++)

    {

        //cout<<v[i-1]<<" "<<v[i-2]<<" "<<v[i-3]<<" "<<v[i-4]<<endl;

        v.push_back(big_num(big_num(v[i-1],v[i-2]),big_num(v[i-3],v[i-4])));

       // cout<<"前四项为:";

        //cout<<v[i-1]<<" "<<v[i-2]<<" "<<v[i-3]<<" "<<v[i-4]<<endl;

        //cout<<"和为:";

        //cout<<v[i]<<endl;

        if(v[i].size()>2006)

            return;

    }

}

int main()

{

    //freopen("in.txt", "r", stdin);

    solve();

    int n;

    while(scanf("%d",&n)!=EOF)

    {

        //cout<<"前四项为:";

        //cout<<v[n-1]<<" "<<v[n-2]<<" "<<v[n-3]<<" "<<v[n-4]<<endl;

        //cout<<"和为:";

        cout<<v[n]<<endl;

    }

    return 0;

}


Hat's Fibonacci的更多相关文章

  1. hdu 1250 Hat's Fibonacci

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1250 Hat's Fibonacci Description A Fibonacci sequence ...

  2. Hat's Fibonacci(大数,好)

    Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  3. Hat's Fibonacci(大数加法+直接暴力)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1250 hdu1250: Hat's Fibonacci Time Limit: 2000/1000 M ...

  4. (二维数组 亿进制 或 滚动数组) Hat's Fibonacci hdu1250

    Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. HDUOJ----1250 Hat's Fibonacci

    Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  6. HDU 1250 Hat's Fibonacci(大数相加)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1250 Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Ot ...

  7. HDU 1250 Hat's Fibonacci (递推、大数加法、string)

    Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  8. hdu 1250 Hat's Fibonacci(高精度数)

    //  继续大数,哎.. Problem Description A Fibonacci sequence is calculated by adding the previous two membe ...

  9. HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)

    Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...

  10. HDU1250:Hat's Fibonacci

    Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...

随机推荐

  1. 深入理解计算机系统chapter9

    从概念上来讲:虚拟存储器被组织为一个存放在磁盘上的N个连续的字节大小的单元组成的数组. 磁盘上数组的内容被缓存到主存中 1. 读写内存的安全性 物理内存本身是不限制访问的,任何地址都可以读写,而操作系 ...

  2. C++移动构造函数以及move语句简单介绍

    C++移动构造函数以及move语句简单介绍 首先看一个小例子: #include <iostream> #include <cstring> #include <cstd ...

  3. Oculus Store游戏下载默认路径修改方法

    最近在测试一款VR游戏,所以在硬件设备上选择了HTC Vive和Oculus两款眼镜.相对而言,HTC安装比较人性化:支持自定义安装路径,而且可在界面更改应用程序下载位置,如图所示: 这下替我节省了不 ...

  4. js如何判断一个对象为空

    今天碰到一个问题如何判断一个对象为空? 总结的方法如下: 1.使用jquery自带的$.isEmptyObject()函数. var data={}; console.log($.isEmptyObj ...

  5. Spark组件

    1,Application application(应用)其实就是用spark-submit提交的程序.比方说spark examples中的计算pi的SparkPi.一个application通常包 ...

  6. hdu 4090--GemAnd Prince(搜索)

    题目链接 Problem Description Nowadays princess Claire wants one more guard and posts the ads throughout ...

  7. angular学习-01,使用第三方库(jquery...)

    开发环境(window) 1.安装node  https://nodejs.org/en/ 2.安装angular-cli npm install -g @angular/cli 3.使用ng new ...

  8. Prison Break

    Prison Break 时间限制: 1 Sec  内存限制: 128 MB提交: 105  解决: 16[提交][状态][讨论版] 题目描述 Scofild又要策划一次越狱行动,和上次一样,他已经掌 ...

  9. S2_SQL_第一章

    第一章:数据库的设计 1.1:为什么需要规范数据库的设计 1.1.1:什么是数据库设计 数据库设计就是将数据中的数据实体及这些数据实体之间的关系,进行规范和结构的过程. 1.1.2:数据库设计非常重要 ...

  10. Java+Velocity模板引擎集成插件到Eclipse及使用例子

    一.因为我用的是当前最新的Eclipse4.5,Eclipse中安装集成VelocityEclipse插件之前需要先安装其支持插件:Eclipse 2.0 Style Plugin Support 1 ...