VB 递归法,等比求和 求助

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:41:55
比萨塔高54.5米,从塔顶抛一小球,每次反弹高度是上一次的4分之1,求静止前经过的垂直距离是多少,递归法,求助

Private Sub Command1_Click()
Dim H As Single, I As Integer, S As Single
Do
I = I + 1
S = S + T(I)
Loop While T(I) > 0.0001 '此处设置静止条件为 反弹高度为0.0001米时认为停止
Print S
End Sub

Function T(N As Integer) As Single
'N为反弹的次数
If N > 1 Then
T = T(N - 1) / 4
Else
T = 54.5
End If
End Function

Private Function dbqh(q As Single, a As Single, n As Integer)
dbqh = a * (1 - q ^ n) / (1 - q)
End Function

Private Sub Form_Click()
Print dbqh(1 / 4, 13.625, 10000)
End Sub