杭电2013蟠桃对比2018母牛特殊斐波那契

来源:互联网 发布:开源java订单管理系统 编辑:程序博客网 时间:2024/05/16 13:57
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    int i,n,m;
    while(cin>>n)
    {
        m=1;
        for(i=1;i<n;i++)
            m=2*(m+1);
        /*
            a2, a1(a2/2-1=a1)
        m...4,  1
        1...n-1,n
        m=1是将第一项a1赋给m,然后an=2*(a(n-1)+1)
        */
        cout<<m<<endl;
    }
    return 0;

}


#include<iostream>//递归写法
using namespace std;

int fib(int n)
{
    if(n<4)return n;
    else return (fib(n-1)+fib(n-3));
}

int main()
{
    int n;
    while(cin>>n)
    {
        if(n==0)break;
        cout<<fib(n)<<endl;
    }
    return 0;
}

//数组法

#include<iostream>
using namespace std;

int main()
{
    int n,a[58],i,t;
    while(cin>>n)
    {
        if(n==0)break;
        a[1]=1;a[2]=2;a[3]=3;
        for(i=4;i<=n;i++)
        {
            a[i]=a[i-1]+a[i-3];
        }
        cout<<a[n]<<endl;
    }
    return 0;
}



//斐波那契非递归法

#include<iostream>
using namespace std;

int main()
{
    int n,f1,f2,i,t;
    while(cin>>n)
    {
        if(n==0)break;
        f1=1;f2=1;
        for(i=2;i<n;i++)
        {
            t=f1;
            f1=f2;
            f2=f2+t;
        }
        cout<<f2<<endl;
    }
    return 0;
}


0 0
原创粉丝点击