斐波那契数列的两种实现

匿名 (未验证) 提交于 2019-12-02 23:05:13

Cpp

#include<iostream> using namespace std;  // 递归实现 O(2^n) 一变二 二变四... long fib1(unsigned int no){     if (no == 0) {         return 0;     }     else if(no == 1) {         return 1;     }     else { // 重复计算的值太多         return fib1(no - 1) + fib1(no - 2);     } };  // 非递归实现 O(n) long fib2(unsigned int no){         long pre2 = 0; // 前面的前面         long pre1 = 1; // 前面         while(no --){             long tmp = pre1;             pre1 = pre2 + pre1;             pre2 = tmp;         }         return pre2; }  int main(int argc, char const *argv[]) {        cout << fib1(0) << endl;     cout << fib1(1) << endl;     cout << fib1(30) << endl;     cout << fib2(0) << endl;     cout << fib2(1) << endl;     cout << fib2(30) << endl;     return 0; }  
文章来源: https://blog.csdn.net/qq_42034068/article/details/88048963
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!