例如:輸入 12345 → 輸出 15 (1+2+3+4+5)。
int sum_digits(int n) {
int sum = 0;
n = abs(n); // 處理負數
while (n != 0) {
sum += n % 10; // 取個位
n /= 10; // 去個位
}
return sum;
}
#include <stdio.h>
#include <stdlib.h>
int main(void) {
long long n; // 支持更大範圍
printf("請輸入一個整數: ");
if (scanf("%lld", &n) != 1) {
fprintf(stderr, "輸入無效\n");
return 1;
}
int sum = 0;
n = llabs(n); // 長整數絕對值
while (n != 0) {
sum += n % 10;
n /= 10;
}
printf("各位數字之和 = %d\n", sum);
return 0;
}
| 操作 | 作用 | 示例 (n=123) |
|---|---|---|
n % 10 | 取最低位數字 | 3 |
n /= 10 | 整數除法,截斷最低位 | 12 |
while (n) | 直到 n 變 0 結束 | 循環 3 次 |