LintCode 第366题 斐波纳契数列 【枚举法】

来源:互联网 发布:linux 专家编程 pdf 编辑:程序博客网 时间:2024/06/05 15:11

查找斐波纳契数列中第 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;}