斐波那契数列

本文介绍了一种非递归方式求解斐波那契数列的方法,通过使用数组记录中间结果,避免了传统递归方法带来的效率问题。此外还提供了一个不使用额外数组的迭代版本。

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

n<=39

现在并不用递归来解决:

用数组

 #include<iostream>
 using namespace std;
 
 int Fibonacci(int n) {
          if(n<=1)
            return n;
        int *record = new int[n+1];
        record[0]=0;
        record[1]=1;
        for(int i=2;i<=n;i++)
        {
            record[i]=record[i-1]+record[i-2];
        }
        return record[n];
    }
int main()
{
    int n;
    while(cin>>n)
    {
        int m=Fibonacci(n);
        cout<<m<<endl;
    }
    return 0;
}

或者用:

int Fibonacci(int n) {
        if(n==0)
            return 0;
        if(n==1)
            return 1;
        int one=0;
        int two=1;
        int num;
        for(int i=2;i<=n;i++)
        {
            num=one+two;
            one =two;
            two=num;
        }
        return num;

    }
View Code

 

转载于:https://www.cnblogs.com/wft1990/p/5962784.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值