求一道VB题目的解答问题
来源:百度知道 编辑:UC知道 时间:2024/06/03 19:31:09
我是这样做的:
Option Explicit
Private Sub Form_click()
Dim i As Integer, b As String, c As String
b = 2
Do
i = i + 1
c = ((2 * i) ^ 2) / ((2 * i - 1) * (2 * i + 1))
b = b * c
Loop Until c < 0.00001
Print b
End Sub
但不行,不知道是什么问题,请高手帮我解答一下!
一看就知道算法有问题,拿第N项来说:
(2*N)^2/((2*N-1)*(2*N+1))=(2*N)^2/((2*N)^2-1)>1
无论如何第N项的值也不会小于1的,所以说算法是错误的。
应该是第N项的值<1.00001时结束才对。
Private Sub Form_click()
Dim i As Double, b As Double, c As Double
b = 2
Do
i = i + 1
c = ((2 * i) ^ 2) / ((2 * i - 1) * (2 * i + 1))
b = b * c
Loop Until c < 1.00001
Print b
End Sub
... 大哥让我费一次话吧 VB真难
不行是什么意思 结果不对 还是程序语法错误
你的代码好像就没按你题目的公式去算
Private Sub Form_click()
Dim i As Double, b As Variant, c As Variant
b = 2
Do
i = i + 1
c = ((2 * i) ^ 2) / ((2 * i - 1) * (2 * i + 1))
b = b * c
Debug.Print i, c, b
DoEvents
Loop Until c < 0.00001
Print b
End Sub
你的数据类型有问题,这个计算量很大,b和c只能是Varient类型,否则会溢出,另外你可以在立即窗口中看到i c b的值的变化,做好心理准备,估计要算个几分钟,因为你那个c的值设的太小
Option Explicit
Dim xx As Boolean
Private Sub Command1_Click()
xx = True
End Sub
Private Sub Form_click()