VB中求小于300的斐波拉契尔数列问题

Dim f1 As Long, f2 As Long, fn As Long
Do While fn < 300
f1 = 1 : f2=1
fn = f1 + f2
f1 = f2
f2 = fn
print fn,
为什么我这样不行啊??

....f1 = 1 : f2=1 你把这个放在循环里面就会产生无限循环了。。。

Private Sub Command1_Click()
Dim f1 As Long, f2 As Long, fn As Long
f1 = 1: f2 = 1
Do While fn < 300

fn = f1 + f2
f1 = f2
f2 = fn

Print fn
Loop
End Sub
采纳吧。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-19
Private Sub Command1_Click()
Dim f1 As Long, f2 As Long
f1 = 1: f2 = 1
With List1
.AddItem f1
.AddItem f2
Do
f2 = f1 + f2
If f2 > 300 Then Exit Do
f1 = f2 - f1
.AddItem f2
Loop
End With
End Sub本回答被网友采纳
第2个回答  2012-05-27
f1 = 1 : f2 = 1这句应该放在Do While之前,否则无限循环