java - 如何使用 while 循环来近似 Pi 并接收用户的输入?
问题描述
这是我高中 comp sci 实验室的第一部分,我想知道是否可以就为什么它不起作用以及如何修复它获得一些意见?
“德国数学家戈特弗里德莱布尼茨开发了以下方法来近似 PI 的值:
Pi 的近似第 1 部分:编写一个程序,允许用户指定在此近似中使用的迭代次数并显示结果值。使用 while 循环来完成此操作。
样本输出:
您想要进行多少次迭代:1000
圆周率:3.140592653839794"
这是我目前拥有的代码。它无法正常运行,我也不知道为什么或如何修复它。现在我只是想让我的输出样本的输出。谢谢!
//define
Scanner scnr = new Scanner(System.in);
double pi = 0.0;
double n = 0.0; //number of the term starting from 0
System.out.println("How many iterations would you like to do: ");
n = scnr.nextInt();
while (n <= n+1) {
pi = (Math.pow(-1,n) * 4.0) / (2.0 * n + 1);
System.out.println("pi: " + pi);
解决方案
这应该这样做:)
Scanner scnr = new Scanner(System.in);
double pi = 0.0;
System.out.println("How many iterations would you like to do: ");
int n = scnr.nextInt();
int i = 0;
while (i < n) {
pi += (Math.pow(-1,i) * 4.0) / (2.0 * i + 1);
System.out.println("pi: " + pi);
i++;
}
推荐阅读
- python - 如何在数据框中将 -0.0 值替换为 0.0 值?
- openshift - 部署在 OpenShift 中的 ansible-tower 在哪里存储 git 存储库克隆?
- javascript - Discord 帐户创建日期问题 / discord.js
- autodesk-forge - 如何在 Autodesk Forge Viewer 中获取当前文档节点?
- python - 谷歌 colab 在训练大数据模型时使用了所有可用的 RAM
- java - 对于 ZonedDateTime 字段,Protostuff 库未按预期工作
- c# - 如何呼叫代表
- javascript - 如何使用 foreach 输入[type=submit]?
- amazon-web-services - 将 s3 文件下载限制为 cognito(首选)中经过身份验证的用户或任何人。他们应该只能查看但不能下载
- reactjs - 动画存在退出不工作帧运动