标签:
题目:写一个函数,输入n,求斐波那契数列的第n项。
方法1:递归:
int fib2(int n) { if(n == 0) return 0; if(n == 1) return 1; return fib2(n-1)+fib2(n-2); }
缺点:如果n比较大,那么递归程度比较深
方法2:
int fib(int n) { int result[2] = {0,1}; if(n < 2) return result[n]; int fibOne = 0; int fibTwo = 1; int fibN = 0; int i = 0; for(i = 2; i <= n; i++) { fibN = fibOne + fibTwo; fibOne = fibTwo; fibTwo = fibN; } return fibN; }
避免了无穷的的递归问题,一个循环时间复杂度为O(n);
标签:
原文地址:http://blog.csdn.net/djb100316878/article/details/42965181