迭代算法:计算π的近似值
根据以下公式求x的值(要求从键盘中输入精度,当某项小于输入的数值时停止迭代)
x/2=1+1/3+1*2/3*5+1*2*3/3*5*7+...+1*2*3*...n/3*5*7*...*(2n+1)
程序运行后,当输入的精度为10^-5时,屏幕中程序输出结果为3.14...
Option Explicit
Private Sub Command1_Click()
Dim π As Double, AccuracyRating As Double, i As Integer
AccuracyRating = InputBox("", "", 0.00001)
π = 2: i = 1
Do While Factorial(i) / DoubleFactorial(2 * i + 1) >= AccuracyRating
π = π + 2 * (Factorial(i) / DoubleFactorial(2 * i + 1))
i = i + 1
Loop
Print "AccuracyRating = " & AccuracyRating
Print "π= " & π
Print
End Sub
Public Function Factorial(ByVal N As Integer)
Dim i As Integer
Factorial = 1
For i = 1 To N
Factorial = Factorial * i
Next i
End Function
Public Function DoubleFactorial(ByVal N As Integer)
Dim i As Integer
DoubleFactorial = 1
For i = 1 To N Step 2
DoubleFactorial = DoubleFactorial * i
Next i
End Function