作业是 可以使用以下方法来近似Pi的值: Pi / 4 = 1 - (1/3)+(1/5) - (1/7)+(1/9) - (1/11)+ ...
编写一个程序,允许用户指定此近似值中使用的迭代次数,并显示Pi的近似值。测试程序的小型,中型和大型迭代次数。
它编译但它没有给我我想要的答案。例如,当我输入1时,它给我1/3而不是8/3。当我几乎任何其他数字,它只是错误,我无法获得任何输出。
import java.util.*;
import java.io.*;
public class LabFiveUnitFour {
public static void main(String[] args) {
double n, pi=1, count=1, amount;
Scanner input = new Scanner(System.in);
System.out.println("How many pi iterations do you want?");
amount = input.nextDouble();
n = amount;
do {
pi = ((Math.pow(-1, n)) / (2 * n + 1));
} while (!(count == amount));
{
n = n - 1;
pi = pi + ((Math.pow(-1, n)) / (2 * n + 1));
count++;
}
pi = 4 * (1 - pi);
System.out.println(pi + "");
}
}
答案 0 :(得分:1)
你有一个do / while循环,它通过比较count和amount来控制,并且该循环的主体没有做任何修改这些变量的事情。结果将是循环永远不会退出。