题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
解题思路:首先如果直接return Fibonacci(n-1)+Fibonacci(n-2)的话会有很多值算了很多遍;因此思考如何遍历一遍得到结果。首先0和1需要单独计算,然后从2开始f2 = f0+f1;f3 = f2+f1,所以计算完f2,让f1变成f2,f0变成f1,这样f3 = f0+f1,因此可得到结果
1 class Solution { 2 public: 3 int Fibonacci(int n) { 4 int result[2] ={0,1}; 5 if(n<2) 6 return result[n]; 7 int f0 = 0; 8 int f1 = 1; 9 int fn = 0; 10 for(int i=2;i<=n;i++) 11 { 12 fn = f0+f1; 13 f0 = f1; 14 f1 = fn; 15 } 16 return fn; 17 } 18 };