計算 f = 1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9,符號交替變化。
引入變量 k 表示當前符號,初始為 1,每輪迭代乘以 -1 翻轉。
[cpp]
#include
#define N 9
void calculate_alternating_sum(int m);
int main() {
calculate_alternating_sum(N);
return 0;
}
void calculate_alternating_sum(int m) {
int sum = 0;
int sign = 1; // 1 代表正,-1 代表負
for (int i = 1; i <= m; i++) {
sum += i * sign;
sign = -sign; // 符號翻轉
}
printf("1-2+3-4+...+9 = %d\n", sum);
}
1-2+3-4+...+9 = 5
1 - 2 = -1
-1 + 3 = 2
2 - 4 = -2
-2 + 5 = 3
3 - 6 = -3
-3 + 7 = 4
4 - 8 = -4
-4 + 9 = 5 ✅
(i & 1) ? i : -i 替代符號變量。(2k-1) - 2k = -1,共 4 對 = -4,加上最後一項 9 → 5。alternating_sum(n, start_sign) 支持任意起始符號與長度。