我试图通过迭代来近似pi。这只是代码的一部分。
我试图将这个等式放入java:pi = 4(1 - 1/3 + 1/5 - 1/7 + 1/9 + ... +(( - 1)^(i + 1) ))/(2i - 1))。我遇到的问题是这个等式的总和(在我的代码中说明)。如果用户继续输入y,程序应该将i乘以2并计算pi直到用户输入n,然后返回主菜单。
else if(input == 4)
{
System.out.print("i=1 pi=4.0\tWould you like to continue? (y|n) ");
char y = keyboard.next().charAt(0);
if (y =='y')
{
for (int i=2; i<=1000; i=i*2)
{
int sum = 0;
double pi =4 * (Math.pow(-1, i+1)/(2*i-1));
//Right here, how do I modify it to get a sum across a multitude of i's?
System.out.print("i=" + i + " " + "pi" + "=" + pi + "\tcontinue (y|n)? " );
keyboard.next().charAt(0);
}
}
else
{
}
答案 0 :(得分:0)
我认为你的问题是使用i
的求和方程与循环计算的编程方法之间的差异。这样的事情将循环i
s加/减分数,然后将它们全部乘以4。
boolean plus = true
double sum = 0;
for (double i=1.0; i<=1000; i+=2.0)
{
if (plus) {
sum += 1.0/i;
plus = false;
} else {
sum -= 1.0/i;
plus = true;
}
}
sum *= 4;