zoukankan      html  css  js  c++  java
  • C++实现斐波那契第N项非递归与递归实现的时间比较

    /*
     * 斐波那契数列.cpp
     *
     *  Created on: 2018年4月9日
     *      Author: soyo
     */
    #include<iostream>
    #include<ctime>
    using namespace std;
    //#  define CLOCKS_PER_SEC  ((clock_t) 1000000) 它表示1秒钟里有多少个嘀嗒个数。
    int main()
    {
        long long Fibonaci(int n);
        long long fibi(int n);
        int n,FibN,FibN2;
        clock_t start,finsh,time;
        cin>>n;
        start=clock();
        FibN=Fibonaci(n);
        finsh=clock();
        time=finsh-start;
        cout<<"斐波那契数列第"<<n<<"项为:"<<FibN<<"运行时间为:"<<time<<"微秒"<<endl;
        start=clock();
        FibN2=fibi(n-1);
        finsh=clock();
        time=finsh-start;
        cout<<"(递归)斐波那契数列第"<<n<<"项为:"<<FibN2<<"运行时间为:"<<time/1000000<<""<<endl;
    }
    long long Fibonaci(int n)
    {
        int result[]={0,1};
        if(n<2)
            return result[n];
        long long NumOne=0;
        long long NumTwo=1;
        long long fibN=0;
        for(int i=2;i<n;i++)
        {
            fibN=NumOne+NumTwo;
            NumOne=NumTwo;
            NumTwo=fibN;
        }
        return fibN;
    }
    long long fibi(int n)    //递归实现
    {
        if(n==0)
            return 0;
        if(n==1)
            return 1;
        else
            return fibi(n-1)+fibi(n-2);
    }

    结果:

    47
    斐波那契数列第47项为:1836311903运行时间为:4微秒
    (递归)斐波那契数列第47项为:1836311903运行时间为:19秒
  • 相关阅读:
    day_07 深浅拷贝
    day_06 再谈编码
    day_05 字典
    day_04 列表
    day_03 字符串
    HDU 1049 Climbing Worm
    HDU 1720 A+B Coming
    Pascal向C++的跨越
    B-Boxes
    喵哈哈村的狼人杀大战(4)
  • 原文地址:https://www.cnblogs.com/soyo/p/8760226.html
Copyright © 2011-2022 走看看