用迭代算法VB求π的近似值?

2025-06-29 10:54:22
推荐回答(1个)
回答1:

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