gpt4 book ai didi

java - 计算 Pi Java 程序

转载 作者:搜寻专家 更新时间:2023-11-01 01:17:05 25 4
gpt4 key购买 nike

我正在上第一堂 Java 编程课,这是我的第一个类项目。我很困惑如何处理它。任何帮助或更正将不胜感激。

您可以使用以下系列来近似常数 PI 的值:

PI = 4 ( 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ... + ( (-1)^(i+1) )/ (2i - 1) )

提示用户输入 i 的值(换句话说,这个系列中要使用多少项)以计算圆周率。例如,如果用户输入 10000,则对系列的前 10,000 个元素求和,然后显示结果。

除了显示最终结果(您的 PI 的最终近似值)之外,我还希望您在每次 10 的幂处显示您的中间计算结果。所以 10、100、1000、10000 等等,显示到在该数量的求和元素处筛选 PI 的近似值。

这就是我到目前为止所做的..

import java.util.Scanner;
public class CalculatePI {

public static void main(String[] args) {
// Create a Scanner object
Scanner input = new Scanner (System.in);

// Prompt the user to enter input
System.out.println("Enter number of terms");
double i = input.nextDouble(); // value of i user entered
double sum = 0;
for(i=0; i<10000; i++){
if(i%2 == 0) // if the remainder of `i/2` is 0
sum += -1 / ( 2 * i - 1);
else
sum += 1 / (2 * i - 1);
}

System.out.println(sum);


}
}

最佳答案

我首先看到的是您试图从您的 void main 方法返回一个值。

不要 return pi; 从你的 main 方法。打印出来。

System.out.println(pi);

其次,当人们编写 for 循环时,他们通常会迭代 i,这可能与您教授的 i 相同公式中提到的

for(double i=0; i<SomeNumber; i++)
{
sum += ((-1)^(i+1)) / (2 * i - 1) );
}

现在,这将无法正常工作,您仍然必须处理 ^,Java 本身并不使用它。幸运的是,-1^(i+1) 是一个交替数,因此您可以只使用 if 语句

for(double i=0; i<SomeNumber; i++)
{
if(i%2 == 0) // if the remainder of `i/2` is 0
sum += -1 / ( 2 * i - 1);
else
sum += 1 / (2 * i - 1);
}

关于java - 计算 Pi Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com