
上QQ阅读APP看书,第一时间看更新
6-3 综合实例1:打印Fibonacci数列
Fibonacci数列(从数列的第31项开始,每一项都等于前面两项之和)是一个很有意思的题目,如果你对这方面的数学知识不太了解,可以上网查查。
打印前30个数字,现在我们来编写程序并打印。

输出结果如图6-1所示。
之所以选用这个案例,是因为这个案例中包含了变量定义,循环语句,选择语句等基本知识。

图6-1 Fibonacci数列输出结果
另外,在这个案例中,还有几个比较巧妙的地方,可以帮助我们思考复习C语言的基础知识。请思考以下问题:
(1)打印前30个数,为什么循环15次?循环结束的时候,fibona1和fibona2分别是第几个Fibonacci数?
(2)本案例中,if语句的作用何在?
(3)代码中fibona1=fibona1+fibona2; fibona2=fibona1+fibona2;都是fibona1+fibona2两个数字相加,为什么结果还不一样?
能给出正确答案,说明读者的C语言基本功已经过关了。
练习:请用另外两种循环结构(do…while和while…do)改写前面的案例。目的很简单,加强读者对各种循环结构的用法比较。