天天看點

寫一個遞歸函數DigitSum(n),輸入一個非負整數,傳回組成它的數字之和。

寫一個遞歸函數DigitSum(n),輸入一個非負整數,傳回組成它的數字之和。

例如,調用DigitSum(1729),則應該傳回1 + 7 + 2 + 9,它的和是19。

分析:1729—(172)+9—(17)+2+9—1+7+2+9

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string>
int DigiSum(int n)
{
  int a= 0;
  int ret = 0;
  while (n > 0)           
  {
    return  ret = (n % 10) + DigiSum(n / 10);   
  }
  return 0;
}
int main()
{
  int a = 0;
  printf("請輸入一個非負整數:\n");
  scanf("%d", &a);
  printf("%d", DigiSum(a));
  system("pause");
  return 0;
}      

​運作結果如下:

寫一個遞歸函數DigitSum(n),輸入一個非負整數,傳回組成它的數字之和。