recfib2.cpp

来自「C++&datastructure书籍源码,以前外教提供现在与大家共享」· C++ 代码 · 共 38 行

CPP
38
字号
#include <iostream>using namespace std;#include "tvector.h"#include "prompt.h"// Illustrates "bad" recursion for computing  Fibonacci numbers// but made better using a static vector for storing valuesint gFibCalls = 0;const int FIB_LIMIT = 40;long RecFib(int n)// precondition: 0 <= n// postcondition: returns the n-th Fibonacci number{    static tvector<int> storage(FIB_LIMIT+1,0);    gFibCalls++;    if (0 == n || 1 == n)    {   return 1;    }    else if (storage[n] == 0)    {   storage[n] = RecFib(n-1) + RecFib(n-2);        return storage[n];    }    else    {   return storage[n];    }}int main(){    int num = PromptRange("compute Fibonacci #",1,FIB_LIMIT);    cout << "Fibonacci # " << num << " = " << RecFib(num) << endl;    cout << "total # function calls = " << gFibCalls << endl;        return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?