Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 乘二除二_Java_Loops_Bessel Functions - Fatal编程技术网

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
除以2
1/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;