我已經得到了下面的任務,我的代碼無法工作。問題是:Pi計算在Java中的特定數量的術語?
使用一段時間或do-while循環,編寫一個程序來計算PI使用以下公式:PI = 3 + 4 /(2 * 3 * 4) - 4 /(4 * 5 * 6)+ 4 /(6 * 7 * 8) - 4 /(8 * 9 * 10)+ ...允許用戶指定計算中使用的術語的數量(顯示5個術語)。每循環一次,只有一個額外的項目應該被添加到PI的估計中。
這是我到目前爲止的代碼: import java.util.Scanner; import javax.swing.JOptionPane; import java.lang.Math;
public class LabFriday25 {
public static void main(String[] args) {
String termInput = JOptionPane.showInputDialog(null, "How many terms of
PI would you like?");
Scanner termScan = new Scanner (termInput);
double termNum = termScan.nextDouble();
double pi = 3;
int count = 0;
double firstMul = 2;
double secMul = 3;
double thirdMul = 4;
double totalMul = 0;
while (count<= termNum)
{
if (termNum==1)
{
pi = 3.0;
}
else if (count%2==0)
{
totalMul= (4/(firstMul*secMul*thirdMul));
}
else
{
totalMul = -(4/((firstMul+2)*(secMul+2)*(thirdMul+2)));
}
pi = pi + (totalMul);
firstMul = firstMul + 2;
secMul = secMul + 2;
thirdMul = thirdMul + 2;
//totalMul = (-1)*totalMul;
count++;
}
JOptionPane.showMessageDialog(null, "The value of pi in " + termNum + " terms is : " + pi);
}
}
我想不通爲什麼代碼不會爲Pi的3個或更多項返回正確的值,它不斷每次都給予同樣的價值。
編輯:我從while語句的末尾刪除了分號,現在代碼返回用戶輸入的任意數量的術語值3.0。我哪裏錯了?
EDIT2:從while循環中刪除條件。答案更接近正確,但仍不夠準確。我如何糾正這個問題給我正確的答案?
不是我能看到的一個好的實現。試試這個:http://www.math.hmc.edu/funfacts/ffiles/30001.1-3.shtml – duffymo