本帖最后由 爱bc的小学生 于 2023-1-11 14:27 编辑
之前那个Mind+版计算不了太多,这个python版就厉害了,可以计算到1000位(我测试的),再高就不准了。
- n = int(input("请输入想要计算到小数点后的位数:")) #输入字符转换为整数
- t = n+10 #多计算10位,防止尾数取舍的影响
- b = 10**t #为算到小数点后t位,两边乘以10^t
- x1 = b*4//5 #取整求含4/5的首项
- x2 = b // -239 #取整求含1/239的首项
- s = x1+x2 #求第一大项
- n *= 2 #设置下面循环的终点,即共计算n项
- for i in range(3, n, 2): #循环初值=3,末值n,步长=2
- x1 //= -25 #取整求每个含1/5的项及符号
- x2 //= -57121 #取整求每个含1/239的项及符号
- x = (x1+x2) // i #求两项之和,除以对应因子,取整
- s += x #求总和
- pai = s*4 #求出π
- pai //= 10**10 #舍掉后十位
- print(pai) #输出圆周率π的值,不带小数点
复制代码
源码下载:圆周率计算器.py.rar
此文件并非压缩包文件,需要将.rar文件后缀名去掉后用mind+即可打开
|