计算Pi Java程序
我正在上我的第一门Java编程课,这是我的一流项目。我对如何处理感到困惑。任何帮助或纠正将不胜感激。
您可以通过使用以下序列来近似常量PI的值:
PI = 4 ( 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ... + ( (-1)^(i+1) )/ (2i - 1) )
提示用户输入i的值(换言之,使用该系列中的多少项)来计算PI。例如,如果用户输入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;
从你的主要方法。打印它。
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);
}
以上是 计算Pi Java程序 的全部内容, 来源链接: utcz.com/qa/407735.html