hveagle 发表于 2022-10-7 19:58:01

算派

#p = (1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ......) * 4
import sys
p = 1
t = int(input('请输入算到几分之一:'))
if t % 2 == 0:
    print('输入错误!')
    sys.exit()
elif t <= 0:
    print('输入错误!')
    sys.exit()
else:
    pass

count = 0
for i in range(3, t+1, 2):
    if count % 2 == 0:
      p -= 1/i
      count += 1
    else:
      p += 1/i
      count += 1

p *= 4
print(p)
运行:
>>>
================== RESTART: /Users/zhangxiang/Documents/算派.py ==================
请输入算到几分之一:101
3.1611986129870506
>>> #3.1
================== RESTART: /Users/zhangxiang/Documents/算派.py ==================
请输入算到几分之一:1001
3.143588659585789
>>> #3.14
================== RESTART: /Users/zhangxiang/Documents/算派.py ==================
请输入算到几分之一:10001
3.1417926135957908
>>> #3.141
================== RESTART: /Users/zhangxiang/Documents/算派.py ==================
请输入算到几分之一:100001
3.141612653189785
>>> #3.141
================== RESTART: /Users/zhangxiang/Documents/算派.py ==================
请输入算到几分之一:1000001
3.1415946535856922
>>> #3.14159
================== RESTART: /Users/zhangxiang/Documents/算派.py ==================
请输入算到几分之一:10000001
3.1415928535897395
>>> #3.141592
================== RESTART: /Users/zhangxiang/Documents/算派.py ==================
请输入算到几分之一:100000001
3.1415926735902504
>>> #3.1415926

jackz007 发表于 2022-10-7 20:15:32

本帖最后由 jackz007 于 2022-10-7 20:17 编辑

x , f = 1.0 , -1
for b in range(3 , 100000000 , 2):
    x , f = x + f / b , -f
print("PI = %.7f" % (x * 4))
      运行实况:
D:\\Python>python pi.py
PI = 3.1415926

D:\\Python>
      不过,脚本运行比较慢,得耐心等待约 3 分钟左右才能见到结果。

hveagle 发表于 2022-10-7 20:25:50

jackz007 发表于 2022-10-7 20:15
运行实况:

      不过,脚本运行比较慢,得耐心等待约 3 分钟左右才能见到结果。

IDLE

jackz007 发表于 2022-10-7 20:28:52

hveagle 发表于 2022-10-7 20:25
IDLE

       有区别吗?

hveagle 发表于 2022-10-27 07:04:32

jackz007 发表于 2022-10-7 20:28
有区别吗?

I don't know. Please go to Xiao Jia Yu
页: [1]
查看完整版本: 算派