求在vba中用Do While语句输出斐波拉契数列,要有全部的代码过程,,感激不尽!

屏幕输出菲波拉契数列。该数列的组成为:已知第1、2个数为0和1,从第三个数开始,每个数是其前两个数的和,即该数列形式如下:

0、1、1、2、3、5、8、13、21、……
生成100000以内的数。

Sub 菲波拉契数列()
''''声明一个n
Dim n As Integer
''''声明一个1 TO 1000的一维数组
Dim A(1 To 1000)
''''赋数组A的1和2个元素值
A(1) = 0
A(2) = 1
''''从第3个元素开始做循环
n = 3
Do While A(n) < 100000 '条件是A(n)小于100000就一直做循环
A(n) = A(n - 1) + A(n - 2) '前两个相加=第3个
Debug.Print A(n) '立即窗口显示出来
n = n + 1 '数组元素递增
A(n) = A(n - 1) + A(n - 2) '再次前两个相加=第3个,此时的A(n)是为了去与100000相比较
Loop
End Sub追问

请问为什么要声明一个1 TO 1000的一维数组呢?

追答

因为我测试过了,按这个加法加下去,顶多就加到1400多次,数据大到计算机都统计不了数据了。所以就随手写个1000,按你的要求100000,可能也就是加几十次就可以了。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-12
Sub xxx()
a = 0
b = 1
Debug.Print a
Debug.Print b
Do While b < 10
c = a + b
Debug.Print c
a = b
b = c
Loop
End Sub

不知道你的VBA是什么环境,有可能输出语句要调整一下,我的程序测试没有问题,你把10改为你要去的值即可。本回答被网友采纳

求在vba中用Do While语句输出斐波拉契数列,要有全部的代码过程,,感激...
Sub 菲波拉契数列()'''声明一个n Dim n As Integer '''声明一个1 TO 1000的一维数组 Dim A(1 To 1000)'''赋数组A的1和2个元素值 A(1) = 0 A(2) = 1 '''从第3个元素开始做循环 n = 3 Do While A(n) < 100000 '条件是A(n)小于100000就一直做循环 A(n) = A(n -...

相似回答