题目:写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
例如,调用DigitSum(1729),则应该返回1 + 7 + 2 + 9,它的和是19
此题的解决思路为:定义一个数字n,若n<9,则函数的返回值直接为n。若n>9,此时要采用递归,拆出n的最后一位,并递归调用DigitSum。
具体代码如下:
#include <stdio.h>
#include <stdlib.h>
int DigitSum(int n)
{
if (n < 9)
return n;
else
return n % 10 + DigitSum(n / 10);
}
int main()
{
int num = 1729;
printf("%d\n",DigitSum(num));
system("pause");
return 0;
}