while (fabs(n) >= 1e-6) {
n = (pow(-1, i)) * 1 / (2*i + 1);
pi += n;
i++;
}
while (fabs(term) >= 1e-6) {
pi += term;
n += 2;
sign = -sign;
term = sign / n;
}
double pi = 0, n = 1, i = 0;
n = (pow(-1, i)) * 1 / (2 * i + 1); // 先計算第 0 項
while (fabs(n) >= 1e-6) {
pi += n; // 累加當前項
i++;
n = (pow(-1, i)) * 1 / (2 * i + 1); // 計算下一項供下輪判斷
}
pi *= 4;
版本 B 邏輯更清晰,符合數學定義;版本 A 需調整循環順序使「判斷-累加-計算下一項」對齊。雙精度下最終結果差異約 `1e-6` 量級。