經典入門題:輸入多行整數 n,輸出 1+2+...+n。代碼邏輯正確但 **WA (Wrong Answer)**,根因:**輸出格式缺少換行符**,導致所有結果擠在一行,不符合「每行一個結果」要求。
int main() {
int n;
while (scanf("%d", &n) == 1) {
int sum = 0;
for (int i = 1; i <= n; i++) sum += i;
printf("%d", sum); // 缺少 \n
}
return 0;
}
int main() {
int n;
while (scanf("%d", &n) == 1) {
int sum = 0;
for (int i = 1; i <= n; i++) sum += i;
printf("%d\n", sum); // 加上 \n
}
return 0;
}
「For each case, output SUM(n) in one line, followed by a blank line.」
in one line:每個結果佔一行 → %d\n。followed by a blank line:每行結果後還有一空行 → %d\n\n 或兩次 printf("%d\n\n", sum)。1\n\n5050\n\n(兩行結果中間有空行)。int main() {
int n;
while (scanf("%d", &n) == 1) {
int sum = n * (n + 1) / 2; // 直接公式 O(1),避免循環超時
printf("%d\n\n", sum); // 結果 + 空行
}
return 0;
}
n=1、n=0(若允許)、最大 n 導致溢出(用 long long)。while(scanf("%d",&n)==1) 處理文件結束/EOF。ios::sync_with_stdio(false); cin.tie(nullptr); (C++)。一個 \n 之差,WA 與 AC 天壤之別。養成「寫完輸出語句檢查換行」習慣,省去無數次無謂提交。