18、大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39

题目:大家都知道斐波那契数列,现在要求输入一个整数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 };
原文地址:https://www.cnblogs.com/olivegyr/p/7017256.html