斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39
先说一下什么是斐波那契数列
1,1,2,3,5,8.
循环方法:
// 1,1,2,3,5,8 //通项公式 f(n) = f(n-1)+f(n-2) class Solution { public: //非递归写法 int Fibonacci(int n) { vector<int> val(41); val[0] = 1; val[1] = 1; if (n == 0) return 0; else if (n > 0 && n <=2) return val[0]; int i; for (i = 2; i < n; i++) { val[i] = val[i-1]+val[i-2]; } return val[n-1]; } };
递归法: 超时(不推荐)
int Fibonacci2(int n) { if(n <= 0) return 0; else if(n == 1) return 1; else return Fibonacci(n-1)+Fibonacci(n-2); }