java的圆周率_java学习日记,圆周率的打印

前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧。

昨天师傅给我出了一道题,说是试试用java打印圆周率。

刚开始我的思路是,如果一个多边形的边数无限多,那么这个多边形就会无限靠近一个圆,那么用周长除以这个多边形的对角线就得到了圆周率的大概值,如果边数越多,那么得到的圆周率就越精确。

刚开始研究了老半天,最后一直找不到在边数增多的情况下,每条边的长度和对角线长度的对应关系。后来无奈,只有上网查了老祖宗​祖冲之及其各个外国友人的祖宗的一系列方法,最后拿到这个这个数学公式pi/4=1/1-1/3+1/5-1/7+1/9-1/11...

最后决定用程序把他写出来,想法步骤如下:

​1.想办法简化这个数学公式,容易让程序写出来,简化公式得到如下

pi/4=2/1*3+2/5*9+2/11*13.....

也就是当i为0 2 4 6 8

10的时候用(2*i+1)*(2*(i+1)+1)可以得到1*3,5*9,11*13这样的公式​

等式右边,分子始终是固定的,2;​分母则是奇数每两个相乘。

圆周率的四分之一则等于所有的分式相加的和,分数越多,结果则越靠近圆周率。

2.​那么,程序代码步骤大概如下

1)定义加多少次分数乘以二。​

2)​定义分子。

3)因为pi是一个相加的结果,定义变量pi,并初始化为0.0

4)​当i为0 2

4 6

8的时候,也就是i对2求余等于0的时候,把(2*i+1)*(2*(i+1)+1)赋值给分母

​5)将pi加上分子除以分母的值赋值给pi,一直循环4

5,循环次数越多得到的pi的值越精确

6)因为得到的值是pi的四分之一,所以打印的时候,将结果乘以4就是我们算出来的圆周率的值。

附上代码:

a4c26d1e5885305701be709a3d33442f.pngjava打印圆周率代码

​​​最后发现一个问题,当分数累加和到达20000个之后,圆周率又开始不准确了,没有找到解决的办法。看看在以后的学习中是否找到更好的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值