题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
基本定义
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368[1]
斐波那契数列特别指出:第0项是0,第1项是第一个1。
这个数列从第3项开始,每一项都等于前两项之和。
动态规划:
1 class Solution { 2 public: 3 int Fibonacci(int n) { 4 int one = 0, two = 1; 5 while(n--) { 6 two += one; 7 one = two - one; 8 } 9 return one; 10 } 11 };
迭代法
1 class Solution { 2 public: 3 int Fibonacci(int n) { 4 if(n == 0) 5 return 0; 6 if(n == 1) 7 return 1; 8 int a1 = 0, a2 = 1; 9 int k; 10 for(int i=2; i<=n; ++i) { 11 k = a1+a2; 12 a1=a2;; 13 a2=k; 14 } 15 return k; 16 } 17 };