编写循环控制代码用下面公式逼近圆周率(精确到小数点后15位),并且和math.pi的值做比较。
重点:
- 阶乘写成一个函数更加方便使用
import math
def factorial(k):
result = 1
while k >= 1:
result *= k
k -= 1
return result
k = 0
sum = 0
while k <= 15:
a = factorial(4*k)
b = 1103 + 26390*k
c = (factorial(k))**4
d = 396**(4*k)
sum += a*b/c/d
k += 1
ans = (2*(2**0.5))/9801*sum
ans = 1/ans
print "My answer: %.15f"%ans
print "math.pi: ",math.pi
运算结果
My answer: 3.141592730013306
math.pi: 3.14159265359