计算π的Java程序

9 浏览
0 Comments

计算π的Java程序

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

您可以使用以下级数来近似计算常数PI:

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

提示用户输入i的值(换句话说,要使用这个级数的项数),以计算PI。例如,如果用户输入10000,则对级数的前10000个元素求和,然后显示结果。

除了显示最终结果(对PI的最终近似值)外,我还希望您在每个10的幂处显示您的中间计算。因此,对于10、100、1000、10000等等,将显示屏幕上该数量的求和元素的PI近似值。

这是我目前的进展..

import java.util.Scanner;
public class CalculatePI {
    public static void main(String[] args) {
        // 创建一个Scanner对象
        Scanner input = new Scanner (System.in);
        // 提示用户输入
        System.out.println("输入项数");
        double i = input.nextDouble(); // 用户输入的i的值
        double sum = 0;
        for(i=0; i<10000; i++){
            if(i%2 == 0) // 如果`i/2`的余数是0
                sum += -1 / ( 2 * i - 1);
            else
                sum += 1 / (2 * i - 1);
        }
        System.out.println(sum);
    }
}

0
0 Comments

计算π的Java程序

计算π是一个经典的数学问题,有许多不同的方法可以解决。在这篇文章中,我们将讨论一个使用公式计算π的Java程序。我们将通过整理下面的内容来了解问题的出现原因以及解决方法。

首先,我们需要理解公式。在尝试使用代码解决问题之前,我们应该思考公式的本质。下面的代码展示了一个错误的尝试:

if(i%2 == 0)
    sum += -1 / ( 2 * i - 1); 
else
    sum += 1 / (2 * i - 1);

这段代码试图在正数和负数之间进行交替,但实际上不需要这样。公式本身已经包含了正负交替的部分。此外,我们需要先计算括号内的求和,然后在最后乘以4。

接下来,我们需要将公式转化为代码。我们需要使用Math.pow(base, exponent)方法来求幂。例如,2的3次方可以写作Math.pow(2, 3)。根据这个方法,公式可以写成以下形式:

PI = 4 * (1 - 1/3 + 1/5 + ... + Math.pow(-1, i + 1) / (2 * i - 1));

最后,我们可以使用for循环来计算π。下面的代码展示了如何使用for循环来计算π:

for (int i = 10000; i > 0; i--) {
      PI += Math.pow(-1, i + 1) / (2 * i - 1); // 计算括号内的序列
      if (i == 1) { // 当到达序列的最后一个数字时,乘以4
        PI *= 4;    
        System.out.println(PI); // 打印结果
      }  
}

在这个例子中,我选择让for循环从10000开始,并在i等于1时结束。这是因为在Java中,由于浮点数的四舍五入,如果先添加较小的数字再逐渐增大,可以获得更准确的结果。所以,我是从右到左计算序列,然后让程序计算括号内的值,只有在序列的最后一个数字时才乘以4并打印结果。

注意:你可以将10000替换为用户输入的值,如下所示:

java.util.Scanner input = new java.util.Scanner(System.in); // 可以导入Scanner类
System.out.println("Enter number of loops: ");
int loops = input.nextInt();
for (int i = loops; i > 0; i--) {
...

通过以上整理的内容,我们可以了解到计算π的Java程序的问题出现原因以及解决方法。使用这些方法,我们可以编写一个准确计算π的程序。

0
0 Comments

计算π的Java程序出现问题的原因是:

1. 在main方法中尝试从void main方法中返回一个值。

解决方法是将其改为打印出结果,而不是返回值。

System.out.println(pi);

2. 在for循环中,通常人们使用i作为迭代变量,这可能是你的教授在公式中所提到的i。

解决方法是使用if语句来处理-1^(i+1)。由于-1^(i+1)是一个交替的数字,因此可以使用if语句来处理。

for(double i=0; i

{

if(i%2 == 0) // 如果`i/2`的余数为0

sum += -1 / ( 2 * i - 1);

else

sum += 1 / (2 * i - 1);

}

计算π的Java程序出现问题的原因是尝试从void main方法中返回一个值,并且在for循环中使用了无法直接使用的^运算符。解决方法是将返回值改为打印结果,并使用if语句来处理交替的数字。

0
0 Comments

问题出现的原因是使用了错误的用户输入方式,将用户输入的值重新赋值给了变量i。解决方法是将用户输入的值直接用于循环计算。例如,可以使用以下代码解决问题:

for(int counter=1; counter

其中,input可以是任何变量,可以通过硬编码或用户输入来设置(例如1000、10000、100000)。这样做可以解决问题。

0