VB编程,急求!谢谢啊!!!!!!!!

2025-05-15 05:11:05
推荐回答(2个)
回答1:

Option Explicit
Dim A() As Single
Sub F(ByVal n As Integer)
If n <= 3 Then
A(n) = 1
Else
A(n) = (A(n - 1) + A(n - 2) + A(n - 3)) / 2
End If
End Sub
Private Sub command1_click()
Dim n As Integer, s As Single, i As Integer
n = 44
ReDim A(1 To n)
For i = 1 To n
F i
s = s + A(i)
Next i
s = s / n
Print "n=44时,前n项的平均值是 "; Format(s, "0.00")
End Sub
本想用递归来做,后来测试发现运行速度太慢,故改用数组来做。

回答2:

Private Sub calu(N As Integer)
Sum = 3
st = 3
A = 1
b = 1
c = 1
While st < N
st = st + 1
d = (A + b + c) / 2
A = b
b = c
c = d
Sum = Sum + d
Wend
aver = Fix(Sum / N * 100) / 100
Print aver
End Sub

Private Sub Form_Click()
Call calu(44)
End Sub