pi 的莱布尼茨公式是: pi/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9...我试图用 Java 编写这个,但遇到了一个问题,输出总是4(这不是 pi 的值)。我将代码放入 java 可视化工具中,问题似乎在于,当代码落入 else 语句中时,它不会从 pi 中减去(1 分母),这使得 prevPi 值和 pi 值相同,即导致 do/while 循环结束。有谁知道我该如何解决这个问题?
我的代码:
public static float piCalculatorLeibniz() {
float pi = 0;
int denominator = 1;
float prevPi = 0;
boolean keepGoing = true;
int i = 0;
while (keepGoing == true) {
prevPi = pi;
if (i % 2 == 0) {
pi += (1/denominator);
} else {
pi -= (1/denominator);
}
i++;
denominator += 2;
if (pi == prevPi) {
keepGoing = false;
}
}
pi *= 4;
return pi;
}
白板的微信
慕婉清6462132
慕容森
相关分类