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