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

迭代算法:计算π的近似值

根据以下公式求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...

第1个回答  2019-06-30

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


本回答被网友采纳
相似回答