计算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

回到顶部