#include<iostream>
using namespace std;
int fib1(int n) {
return (n == 0 || n == 1) ? n : fib1(n - 1) + fib1(n - 2);//T(n)=O(2^n)
}
long fib2(long n) {
long f = 0, g = 1;
while (0 < n--) {
g = g + f;
f = g - f;
}
return g;//T(n)=O(n)
}
int main() {
long n = 0;
while (n < 46) {
cout << n<<'\t'<<fib2(n) << endl;
n++;
}
return 0;
}
斐波那契数列,如果用递归法求解,则效率太低,用动态规划来优化,迭代法求解,可大大降低算法时间复杂度,提高效率