Saya telah diberi tugas berikut dan kode saya tidak berfungsi. Pertanyaannya adalah:
Dengan menggunakan perulangan while atau do- while, tulislah program untuk menghitung PI menggunakan persamaan berikut: PI = 3 + 4/(2*3*4) - 4/(4*5*6) + 4/(6* 7*8) - 4/(8*9*10) + ... Izinkan pengguna menentukan jumlah suku (5 suku ditampilkan) untuk digunakan dalam perhitungan. Setiap putaran, hanya satu suku tambahan yang harus ditambahkan ke perkiraan PI.
Ini adalah kode yang saya miliki sejauh ini: import java.util.Scanner; impor 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);
}
}
Saya tidak tahu mengapa kode tidak mengembalikan nilai yang tepat untuk 3 atau lebih istilah Pi, kode tersebut terus memberikan nilai yang sama setiap saat.
EDIT: Saya menghapus titik koma dari akhir pernyataan while dan sekarang kode tersebut mengembalikan nilai 3.0 untuk sejumlah istilah yang dimasukkan oleh pengguna. Dimana kesalahanku?
EDIT2: Kondisi dihapus dari loop while. Jawabannya hampir mendekati benar, namun masih belum cukup akurat. Bagaimana saya bisa memperbaikinya agar memberi saya jawaban yang benar?