查找斐波纳契数列中第 N 个数。

所谓的斐波纳契数列是指:

  • 前2个数是 0 和 1 。
  • 第 i 个数是第 i-1 个数和第i-2 个数的和。

斐波纳契数列的前10个数字是:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

样例


给定 ​​1​​,返回 ​​0​​给定 ​​2​​,返回 ​​1​​给定 ​​10​​,返回 ​​34​​ 代码实现:

#include <iostream>
using namespace std;

//迭代实现
int iterationFuntion(){
int cinValue;
cin >>cinValue;
if (cinValue == 1) {
return 0;
} else if (cinValue == 2) {
return 1;
} else {
int valueA = 0;
int valueB = 1;
int valueC = 0;
for (int index = 3; index<=cinValue; index++) {
valueC = valueA + valueB;
valueA = valueB;
valueB = valueC;
}
return valueC;
}
}

//递归实现
int recursiveFuntion(int index){
if (index == 1) {
return 0;
} else if (index == 2) {
return 1;
} else {
return recursiveFuntion(index-1) + recursiveFuntion(index-2);
}
}

int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";

int value1 = iterationFuntion();
int cinValue;
cin >>cinValue;
int value2 = recursiveFuntion(cinValue);
return 0;
}