Java循环案例-求PI值
30天!
题目一:
PI=4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17…
1.这个算式的结果会无限接近于圆周率的值,我国古代数学家祖冲之计算出,圆周率在3.1415926和3.1415927之间,请编程计算,要想得到这样的结果,他要经过多少次加减法运算?18660304
**思路:**我本来的思路是只控制分母,但是似乎陷入了死循环,一直执行无结果,逻辑想起来似乎没有问题,你如果看到有兴趣的话兴许可以告诉我为什么。
能运行出结果的思路,是将每个分数当作一个整体,for循环中的变量直接是加减的次数。
感想:遇到这种含有分数,且前面加减交错的问题,可以将整个分数作为一个整体。
package LoopDemo;/*
* 题目一:
* PI=4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17......
1.这个算式的结果会无限接近于圆周率的值,我国古代数学家祖冲之计算出,
* 圆周率在3.1415926和3.1415927之间,请编程计算,要想得到这样的结果,
* 他要经过多少次加减法运算?
*
* 思路:
* 1.将Pi初始值设为0,但是要注意为double;将分母x初始值设为1,也要为double型
* 2.将for循环的次数作为最终的计算结果,
* 3.将4/x作为一个整体,第一,三,五奇数次执行时前面应该是加号,每次x应该加2;
* 4.判断Pi值在范围之内时,输出循环的次数以及pi值
* */public class Demo01PI {public static void main(String[] args) {double x = 1;double Pi = 0;for (int i = 1; ; i++) {double y = 4 / x;if (i % 2 == 1) {Pi = Pi + y;x = x + 2;}else {Pi = Pi - y;x = x + 2;}if (Pi >= 3.1415926 && Pi <= 3.1415927){System.out.println("PI为" + Pi);//PI为3.1415926000000005System.out.println("经过了" + i + "次加减法运算");//经过了18660304次加减法运算break;}}}//这一部分代码跑不出来,逻辑感觉成立,但不知道为什么/*public static void main(String[] args) {double sum = 4.0;int temp = 0;for (int i = 3, j = 1; ; i += 2, j++) {sum = sum + ((-1) ^ j) * 4.0 / i;temp++;System.out.println("第" + temp + "次执行了");if (sum >= 3.1415926 && sum <= 3.1415927){System.out.println("PI为" + sum);System.out.println("经过了" + temp + "次加减法运算");break;}}//System.out.println("PI为" + sum);//System.out.println("经过了" + temp + "次加减法运算");}*/}
Java循环案例-求PI值相关推荐
- 第一个Spark实例:求PI值
向spark提交jar,需要使用 bin下的spark-submit [hadoop@nbdo1 bin]$ ./spark-submit --help Usage: spark-submit [op ...
- 看得见的算法蒙特卡洛问题——使用蒙特卡洛算法求PI值
看得见的算法蒙特卡洛问题--使用蒙特卡洛算法求PI值 1.什么是蒙特卡洛问题 蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算 ...
- Matlab--蒙特卡洛方法求pi值
Matlab--蒙特卡洛方法求pi值 蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论 ...
- matlab求pi值的三种方法
https://www.icourse163.org/learn/CSU-1002475002?tid=1450231442#/learn/content?type=detail&id=121 ...
- 蒙特卡洛法求概率密度函数matlab,matlab的蒙特卡洛算法-----用概率算法求pi值
问题补充: 能提供一个例子看看吗?我就不懂MATLAB,想知道具体代码.因为现在写论文急,也没时间仔细看书了 蒙特卡罗模拟 就是随机数相关的东西,你只要知道随机数是怎么得到.其它的事就要好办了. ra ...
- java循环1000000000_求十亿内所有质数的和,怎么做最快?
注:对知乎的公式编辑功能实在无力吐槽,用typora写的文章直接粘过来公式无法显示,只好又手工加上了全部公式,不过可能还是会有遗漏.大家可以点击这个链接 查看我的博客原文.以下是正文: 第一次关注到这 ...
- matlab中用公式求pi值,matlab用π 4公式求π的近似值,直到某一项的绝对值小于10-6为止...
求问matlab计算的几个公式以及方法. 峰值max峭度应该就是梯度了gradient曲线画图:plot(二维)plot3(三维),其他画图都用这个就够了查matlab文档 求matlab高手,这个公 ...
- hadoop案例测试——pi值、wordcount函数,hadoop不支持本地库问题
前言:本文案例测试所需环境都是在前面几篇blog的基础上进行的,具体内容请查看: http://blog.csdn.net/u012829611/article/details/77678609 ht ...
- Java循环案例-银行存钱问题
题目10: \10. 本金10000元存入银行,年利率是千分之三.每过1年,将本金和利息相加作为新的本金.计算5年后,获得的本金是多少?(使用for循环实现) 思路:把循环次数控制为5次,注意千分之三 ...
最新文章
- indesign如何画弧线_硬币画警车简笔画【图文+视频教程】
- 要让OKR真正”OK“,这三点一定要注意!
- 数字信号处理中的归一化频率
- c语言switch设计计算器,求助。。关于用switch编写简易计算器
- react.JS并非完全开源,百度、Wordpress等带头弃之
- 【原】UCS-2和UTF-8的互相转换
- Python 局部变量和全局变量 - Python零基础入门教程
- dede mysql语句_让dede运行php代码和mysql语句
- 指引趋势和方向!2019开发者技能报告出炉!!
- C++语言vector容器介绍和示例
- 惊,Java 字符串拼接竟然有这么多玩法!| CSDN 原力计划
- Linux平台vsftp创建帐号
- 错误代码1500什么意思_为什么藏族可以吃牦牛肉?(笑cry~
- adc matlab代码,pudn-几种ADC设计的matlab源码
- C语言写计算ln()计算式,NTC热敏电阻温度计算方法,Steinhart-Hart方程和B值法(转)...
- mediawiki mysql配置_MediaWiki 搭建与配置使用
- 光大银行监控平台实践,含详细工具及架构选型思路
- 计算机标点符号怎么切换,标点符号转换键是什么?
- 学计算机白头,为何会有人“一夜白头” 它有科学依据吗?看完终于懂了
- 华为TechWave峰会上主推的分布式云到底什么来头?
热门文章
- 人脸识别方法个人见解
- 蚁群算法,PSO算法以及两种算法可以融合的几种方法
- [做题记录]AtCoder AGC做题记录
- c语言memset函数用法,深入学习C语言中memset()函数的用法
- euv光刻机有什么用_台积电又买了13台EUV光刻机?
- 利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API
- vue项目npm run build后如何在本地查看效果
- cxgrid动态创建列
- 关于《设计模式演练》系列文章结构的规范
- C# 非模式窗体show()和模式窗体showdialog()的区别