c语言小程序计算圆周率,[软件]Python长整数的威力——算任意位数圆周率的小程序...

用什么语言的程序能比这个更简洁?

程序:

from string import atol, zfill

def calc_pi(n):

r=atol('6'+zfill('0',n+1))

p=0L

k=0L

c=r/2

d=c/(2*k+1)

while d>0L:

p=p+d

k=k+1

k2=2*k

c=c*(k2-1)/(4*k2)

d=c/(k2+1)

return p

运行结果:(小数点固定在3后面,自己处理。)

>>> calc_pi(40)

314159265358979323846264338327950288419687L

>>> calc_pi(100)

314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706718L

>>> calc_pi(1000)

314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019077L

人打赏

0人 点赞

主帖获得的天涯分:0

举报 |

楼主

|

楼主发言:1次 发图:0张 | 添加到话题 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值