斐波那契数的两种实现方式———1.递归实现,2迭代实现-创新互联

斐波那契数的两种实现方式———1.递归实现,2迭代实现

创新互联建站专注于拜城网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供拜城营销型网站建设,拜城网站制作、拜城网页设计、拜城网站官网定制、小程序设计服务,打造拜城网络公司原创品牌,更为您提供拜城网站排名全网营销落地服务。

   对于斐波那契数,若是采用递归的算法,每个递归调用都将触发另外两个递归调用,而这两个中调用任意一个还会触发另外两个的调用。递归调用的时间复杂度O(2^N),空间复杂度为O(N),所以在计算略大的数会花费一定的时间和空间。递归程序如下:

#include
using namespace std;

unsigned long long Fib(size_t num)
{
    if (num < 2)
    {
        return num;
    }
    else
        return Fib(num - 1) + Fib(num - 2);
}
int main()
{
    unsigned long long ret = Fib(10);
    cout << ret << endl;
    system("pause");
    return 0;
}

斐波那契数的两种实现方式———1.递归实现,2迭代实现

用迭代方法计算第N 个斐波那契数,时间复杂度O(N),空间复杂度O(1),程序如下:

#include
using namespace std;

unsigned long long Fib(size_t num)
{
    unsigned long long first = 0;
    unsigned long long second = 1;
    unsigned long long sum = 0;
    if (num < 2)
        return num;
    else
       for (size_t i = 2; i <= num; i++)
       {
           sum = first + second;
           first = second;
           second = sum;
       }
       return sum;
}

int main()
{
    unsigned long long ret = Fib(10);
    cout <<"Fibonacci(10)="<< ret << endl;
    system("pause");
    return 0;
}

斐波那契数的两种实现方式———1.递归实现,2迭代实现

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


当前题目:斐波那契数的两种实现方式———1.递归实现,2迭代实现-创新互联
文章路径:http://myzitong.com/article/dchegi.html