4.6.8  Fibonacci数列

4.6.8 Fibonacci数列

【例4-32】Fibonacci数列的前两项是0和1,且每个后继项是前两项的和,所以数列为0、1、1、2、3、5、8、13、……。编写程序输出项值不大于1000的Fibonacci数列。

按“三步法”原则分析如下。

978-7-111-49659-5-Chapter04-280.jpg做什么

根据题意没有输入,所以窗体上只需要一个“计算”按钮。

978-7-111-49659-5-Chapter04-281.jpg怎么做

这个数列至少有两项0和1才能计算后面的数列,所以初始化前两项x1=0,x2=1。接下来就可以用x1,x2计算第三项了,判断第三项是否小于1000,如果小于,则需要计算第四项,所以这时需要修改x1、x2,把x2的复制给x1,x3的值复制给x2,这样就可以用相同的表达式x3=x1+x2来计算第四项了,以此类推。

步骤描述如下。

1)初始化x1=0,x2=1,输出x1、x2。

2)计算x3=x1+x2。

3)判断x3,如果x3小于或等于1000,向下执行;否则退出循环,程序结束。

4)输出x3,修改x1、x2,把x2的复制给x1,x3的值复制给x2。

5)计算x3=x1+x2。返回第3)步。

978-7-111-49659-5-Chapter04-282.jpg实现

由于输出项数较多,所以采用Print方法从窗体输出。

●用Do…Loop前测型语句实现:

978-7-111-49659-5-Chapter04-283.jpg

●用Do…Loop后测型语句实现:

978-7-111-49659-5-Chapter04-284.jpg

●用While语句实现:

978-7-111-49659-5-Chapter04-285.jpg

978-7-111-49659-5-Chapter04-286.jpg

运行效果如图4-36所示。

请读者们改一下如何用直到型实现。

978-7-111-49659-5-Chapter04-287.jpg

图4-36 Fibonacci数列