首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C 語言遞歸實現:非負整數各位數字之和

     編輯:關於C

問題描述

輸入非負整數 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 明確語義,避免負數無限遞歸;
  • 極大數字(如 10 位以上)遞歸深度 < 20,棧安全;
  • 迭代版更高效:while(n){sum+=n%10;n/=10;}。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved