数据结构-斐波那㓶数列(非递归法)

神用递归。在这个题目里面递归的效率很差(因为每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址、临时变量),当数据量很大的时候,效率慢,而且会导致栈溢出。

/*
剑指offer面试题9
*/
#include <iostream>

using namespace std;

int Fibonacci(int n){
    int result[2] = {0,1};
    if(n < 2){
        return result[n];
    }

    int tmp1 = 0;
    int tmp2 = 1;
    int tmp3 = 0;

    for(size_t i=1;i<n;i++){
        tmp3 = tmp1 + tmp2;
        tmp1 = tmp2;
        tmp2 = tmp3;
    }

    return tmp3;
}

int main()
{
    int n;
    cin >> n;

    int r = Fibonacci(n);

    cout << r;

    return 0;
}
原文地址:https://www.cnblogs.com/wn19910213/p/3718914.html