1
爲什麼這兩個代碼片段會給出兩個不同的結果?乘以二除
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;
嘖嘖,謝謝! (我現在正在修理,因爲這應該是顯而易見的。)將在5分鐘內接受。 – yodie 2010-10-17 02:41:45
它完全是一個界限,與'i/2'位無關,OP在第一個實例中減少2;這裏是一個發生了什麼事情的例子:http://ideone.com/uIqDI – 2010-10-17 02:44:43
@Mark - 哦,我的第一個直覺是對的。 *嘆氣*哎呀。 – Omnifarious 2010-10-17 05:18:58