1

これら 2 つのコード スニペットで 2 つの異なる結果が得られるのはなぜですか?

    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;

    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;
4

1 に答える 1

3

2 番目のループに境界エラーがあります。である必要がありますi > 0。最初のループにはがありますが、 2 でi > 1割ります。したがって、2 番目のループにあるはずです。i1 / 2 == 0i > 0

于 2010-10-17T02:36:43.957 に答える