LintCode 第366题 斐波纳契数列 【枚举法】
原创
©著作权归作者所有:来自51CTO博客作者小怡情ifelse的原创作品,请联系作者获取转载授权,否则将追究法律责任
查找斐波纳契数列中第 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;
}