-
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:
1 秒
内存限制:32 兆
题目描述:
-
输入:
-
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
-
输出:
-
对应每个测试案例,
输出第n项斐波那契数列的值。
-
样例输入:
-
3
-
样例输出:
-
2
-
方法分析:根据递推公式求出斐波那契数列前71项,注意数据值的范围,斐波那契数列以略小于2^n的趋势增长,可以通过程序逐渐测试数据值的范围。
-
index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-
value 0 1 1 2 3 5 8 13 21 34 55 89 144 233
-
-
#include <iostream> #include <cstdio> using namespace std; const int N = 71; long long int fabo[N]; void initFabo() { fabo[0] = 0; fabo[1] = 1; for (int i = 2; i < N; ++i) fabo[i] = fabo[i - 1] + fabo[i - 2]; } int main(void) { int n; initFabo(); while (scanf("%d", &n) != EOF) { printf("%lld\n", fabo[n]); } return 0; }