2016-09-26 99 views
-2

賦值爲 以下方法可用於近似Pi的值:Pi/4 = 1-(1/3)+(1/5) - (1/7)+(1/9) - (1/11)+ ...Pi迭代,顯示用戶輸入的pi的迭代次數

編寫一個程序,允許用戶指定在此近似值中使用的迭代次數並顯示近似值的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 + ""); 
    } 
} 
+2

你有一個do-while循環和一個while循環的奇怪混搭。你想做什麼? – azurefrog

+0

通常,執行固定次數的循環由'for'循環處理。 – 4castle

+0

你爲什麼要將計數/數量定義爲雙打?你只是將它們用作整數。允許'2.3'迭代沒有任何意義。 –

回答

1

你有做/而通過比較計數和量和循環體控制迴路沒有做任何事情來修改任何這些變量的。結果將是循環永遠不會退出。