我目前在學習Java,我的一個任務是使用教授給予我們的某個公式來近似pi,我們必須使用for循環。方向對我來說不是很清楚,但我的程序非常接近,但我無法弄清楚爲什麼pi的值接近但不是每個區間應該是什麼。不能讓程序正確接近pi
這是我被給做程序中的指令:
(計算π)可以通過使用下面的公式近似π: PI + =符號/(2 * I - 1.0);其中i是for循環中變量的名稱,pi是π的變量名稱,當聲明它時初始值爲1,並且for循環中的>設置爲等於它自身的負數。確保你使用for循環>來完成這個任務。 for循環的起始值應該是2,當i小於或等於100000時,結束值應該>>。如果pi除以10000的值爲零,那麼> pi應該是(4 * pi)。
這是我想到的代碼。
public class Ch4PA1
{
public static void main(String[] args) {
//Declarations
double pi = 1;
double sign = 1;
for (int i = 10000; i <= 100000; i += 10000)
{
pi = 3.14159265359;
sign = -2;
pi += sign/(2 * i - 1.0);
System.out.println("i : " + i + " The PI is " + pi);
}
}
}
我想不出什麼我做錯了,我已經在這個項目約10小時的關上,它只是結束了在我感到沮喪赫克試圖找到出。
我認爲你應該重新閱讀說明書,看看你的'for'循環。 'for(int i = 10000; i <= 100000; i + = 10000)'是錯誤的,我認爲... – nhgrif
她說要使用2的初始值,但她希望我們以10,000的間隔輸出pi的值從10,000到100,000。我嘗試了每一種可能的方式,以便使用她的指示來工作,並且這是我能夠以只顯示她想要的10,000個間隔的唯一方式。我認爲我遇到的問題是符號變量的值,但是我嘗試的所有內容在程序中都沒有多大意義,因爲它每次都會導致pi錯誤。 –
'for(int i = 2; // etc ...',然後把你的輸出放在'if(i%10000 == 0){System.out .// etc ...'作爲你的'for'循環目前,你沒有足夠頻繁地進行數學運算(從來不會犯任何其他錯誤),因爲你只需要循環10次就可以得到接近'pi'的值,所以你需要經過10萬遍'i%10000 == 0'將在'i'爲10000的倍數時返回'true',所以它會在'i = 0','i = 10000','i = 20000'處打印。等 – nhgrif