1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
斐波拉契序列
1 2 3 5 8 13 21 34
*/

# include <stdio.h>
int main(void)
{
int n; //求第n项
int f1, f2, f3;
int i;

f1 = 1;
f2 = 2;

printf("请输入您需求项的序列: ");
scanf("%d", &n);

if (1 == n)
{
f3 = 1;
}
else if (2 == n)
{
f3 = 2;
} //观察斐波拉契序列
//只有第一项和第二项是1和2,第三项开始是前两项相加
else
{
for (i = 3; i <= n; ++i)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
}

printf("%d\n", f3);



return 0;
}

在VS中的输出结果是:
请输入您需求项的序列: 6
13

看懂程序-试数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1> i=3 3<=6 成立
f3=1+2=3 f1=f2=2 f2=f3=3 ++i i=4
2> i=4 4<=6 成立
f3=2+3=5 f1=3 f2=5 ++i i=5
3> i=5 5<=6 成立
f3=3+5=8 f1=5 f2=8 ++i i=6
4> i=6 6<=6 成立
f3=5+8=13 f1=8 f2=13 ++i i=7
5> i=7 7<=6 不成立

输出f3