利用生成器,基于韦达公式给出计算 π 的具有 O(N) 复杂度的算法
# coding:utf-8
from math import sqrt
def Vieta():
#请在此添加代码
#********** Begin *********#
a = sqrt(2)/2.0
yield a
while True:
a = sqrt((1+a)/2.0)
yield a
#********** End *********#
N = int(input())
v = Vieta(); p = 1.0
for i in range(N+1):
#请在此添加代码
#********** Begin *********#
p *= next(v)
#********** End *********#
print ("%.6f"%(2.0/p))