写一个递归函数DigitSum(n), 输入一个非负整数, 返回组成它的数字之和
例如, 调用DigitSum(1729), 则应该返回1+7+2+9, 它的和是19
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int DigitSum(int num)
{
if (num < 10)
return num;
else
return num%10 + DigitSum(num/10);
//DigitSum(1729) = 9 + DigitSum(172);
//DigitSum(172) = 2 + DigitSum(17);
//DigitSum(17) = 7 + DigitSum(1)
//DigitSum(1) = 1;
//最终,DigitSum(1729) = 9 + 2 + 7 + 1 = 19
}
int main()
{
int n = 0;
printf("输入一个非负整数:\n");
scanf("%d", &n);
int ret = DigitSum(n);
printf("%d\n", ret);
return 0;
}
运行结果: