輸入非負整數 n,遞歸計算其十進制各位數字之和。例:1234 → 1+2+3+4=10。
n == 0 返回 0;sum(n) = n%10 + sum(n/10)。#include <stdio.h>
int digitSum(unsigned int n) {
if (n == 0) return 0;
return n % 10 + digitSum(n / 10);
}
int main() {
unsigned int n;
printf("請輸入非負整數: ");
scanf("%u", &n);
printf("各位數字之和 = %d\n", digitSum(n));
return 0;
}
請輸入非負整數: 12345
各位數字之和 = 15
unsigned int 明確語義,避免負數無限遞歸;while(n){sum+=n%10;n/=10;}。