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

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

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

前2个数是 0 和 1 。
第 i 个数是第 i-1 个数和第i-2 个数的和。
斐波纳契数列的前10个数字是:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
样例  1:
	输入:  1
	输出: 0
	
	样例解释: 
	返回斐波那契的第一个数字,是0.

样例 2:
	输入:  2
	输出: 1
	
	样例解释: 
	返回斐波那契的第二个数字是1.
#include <iostream>
#include <cstdio>

using namespace std;

const int MAXN = 2 + 10;
int arr[MAXN];

int fibonacci(int n) {
    // write your code here
   if (n == 1 || n == 2) {
        return n - 1;
   }

   arr[0] = 0;
   arr[1] = 1;
   //0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
//   int sum = 0;
//   for (int i = 3; i <= n; i++) {
//        sum = arr[0] + arr[1];
//        arr[0] = arr[1];
//        arr[1] = sum;
//   }

//   return sum;

    //0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
    for (int i = 3; i <= n; i++) {
        arr[(i - 1) % 2] = arr[0] + arr[1];
    }

    return arr[ (n + 1) % 2];
}

int main() {

    for (int i = 1; i <= 10; i++) {
        int number = fibonacci(i);
        printf("%d ", number);
    }
    printf("\n");

    return 0;
}


【结果】

0 1 1 2 3 5 8 13 21 34

Process returned 0 (0x0)   execution time : 0.055 s
Press any key to continue.
posted @ 2022-01-27 16:38  hellozwx  阅读(117)  评论(0编辑  收藏  举报