Java 乘二除二
为什么这两段代码给出了两种不同的结果Java 乘二除二,java,loops,bessel-functions,Java,Loops,Bessel Functions,为什么这两段代码给出了两种不同的结果 double sum = 1.0; double xSqFour = x * x / 4; for (int i = 48; i > 1; i-=2) { sum = 1.0 + (xSqFour / ((i/2) * (i/2))) * sum; } return sum; 及 您的第二个循环有一个边界错误。它应该是i>0。第一个循环有i>1,但它也将i除以21/2==0,所以第二个循环中
double sum = 1.0;
double xSqFour = x * x / 4;
for (int i = 48; i > 1; i-=2) {
sum = 1.0 + (xSqFour / ((i/2) * (i/2))) * sum;
}
return sum;
及
您的第二个循环有一个边界错误。它应该是
i>0
。第一个循环有i>1
,但它也将i
除以21/2==0
,所以第二个循环中应该是i>0
。Gee,谢谢!(我现在正在桌面上,这应该是显而易见的。)将在5分钟内接受。这纯粹是一个边界问题,与I/2
位无关,OP在一开始会减少2;下面是一个发生了什么的例子:
double sum = 1.0;
double xSqFour = x * x / 4;
for (int i = 24; i > 1; i--) {
sum = 1.0 + (xSqFour / (i * i)) * sum;
}
return sum;