result = 0
2 * i - 1
s = -s
def pi(n):
pi = "3."
for i in range(1, n+1):
a = 2 * i - 1
b = 2 ** i
pi += str(4 * a // b)
if i == 1: # 第1项后不加 *
pi += ""
else:
r = str(2 * (i - 1))
pi += "/"
pi += str(4 * i - 2) + "*" + r + "/" + r # 每项后面加上形如(*(2*i-2)/(2*i-1))的项
return pi[:n+1]
print(pi(10)) # 应该返回 3.141592653
解释:每一项的系数为 $4a/b$,其中 $a$,$b$ 分别为 $2i-1$ 和 $2^{i}$,可以先计算出来。而在形如 (m/n) 的每一项后面加上形如 ((2i-2)/(2i-1)) 的项的系数为 m/n,它可以简化为 2(m-1)/(2i-1)。比如,$i=3$,在 5/8 后面加上 4/7,得到 5/8 * 4/7,即取 n=2,则分别有 m=10 和 8,n=7 和 5,所以得到 (10/7)/(8/5)。