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