10506
题目
输入 n,使用循环计算并输出斐波那契数列的第 n 项。
解析
用两个对象保存相邻两项,每轮循环把它们向后推进一位即可。下面约定第 0 项是 0,第 1 项是 1。
答案
c
#include <stdio.h>
int main(void) {
unsigned n;
if (scanf("%u", &n) != 1) {
return 1;
}
unsigned long long a = 0;
unsigned long long b = 1;
for (unsigned i = 0; i < n; ++i) {
unsigned long long next = a + b;
a = b;
b = next;
}
printf("%llu\n", a);
return 0;
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20