S = Σ_{i=1}^{100} (-1)^{i+1} / i (調和級數交錯和,收斂至 ln 2 ≈ 0.6931)。
double sum = 0.0;
int sign = 1;
for (int i = 1; i <= 100; i++) {
sum += sign * 1.0 / i;
sign = -sign; // 翻轉正負
}
printf("%.6f\n", sum); // 0.688172
double sum = 0.0;
int i = 1, sign = 1;
while (i <= 100) {
sum += sign * 1.0 / i;
sign = -sign;
i++;
}
double sum = 0.0;
int i = 1, sign = 1;
do {
sum += sign * 1.0 / i;
sign = -sign;
i++;
} while (i <= 100);
1.0 / i 強制浮點除法,1 / i 為整數除法 (結果恆 0)。sign 初始 1,首項為正,符合數學定義。for 最適合已知次數,while 適合條件複雜,do-while 保證至少執行一次。double sum = 0.0, c = 0.0;
for (int i = 1; i <= 100; i++) {
double term = (i%2?1:-1) * 1.0 / i;
double y = term - c;
double t = sum + y;
c = (t - sum) - y;
sum = t;
}