圆周率
* * * *
拉格朗日计划
* * * *
圆周率

打印圆周率$\pi$的前1000位(小数点后999位)。

本题难度:



解答

此处使用的以下Newton-Euler公式可以参考此页面Wolfram Alpha相关页面上的公式23。

$$\frac{\pi}{2}=\sum_{k=0}^\infty\frac{2^{k}(k!)^{2}}{(2k + 1)!},$$ 两边同乘以2,再将右侧分母中的偶数从分子中约去就得到下面代码中的实现公式: $$\pi=2(1+\sum_{k=1}^\infty\prod_{j=1}^k\frac{j}{2j+1}),$$ 最终代码只有三行。

代码长度:75字节 vs. 全站第一:65字节。

i=1;a=p=2*10**1004
while a:=a*i//(2*i+1):p+=a;i+=1
print("3."+str(p)[1:-4])