輸入兩個整數 m 和 n,計算從 min(m,n) 到 max(m,n) 之間(包含邊界)所有偶數的平方和,以及所有奇數的立方和。輸入包含多組測試數據,以 EOF 結束。
首先確保 m ≤ n,若否則交換兩值。然後遍歷區間 [m, n],根據奇偶性累加:
#include <stdio.h>
int main(void) {
int m, n, i;
long long even_sum, odd_sum; // 使用 long long 防止溢出
int temp;
while (scanf("%d %d", &m, &n) != EOF) {
if (m > n) {
temp = m;
m = n;
n = temp;
}
even_sum = 0;
odd_sum = 0;
for (i = m; i <= n; i++) {
if (i % 2 == 0)
even_sum += (long long)i * i;
else
odd_sum += (long long)i * i * i;
}
printf("%lld %lld\n", even_sum, odd_sum);
}
return 0;
}
可利用數學公式直接計算而無需循環:
但對於本題數據範圍,直接循環完全足夠且更直觀。