写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
输入:1729,输出:19
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int DigitSum(int n)
{
if (n <= 9)//个位数的和就是它本身
{
return n;
}
else
{
return n%10 + DigitSum(n / 10);
}//如果不是个位数,用%10(取模)得到这个数的最后一位,递归实现这个数除于10后的最后后一位,也就是进一位(十位)以此类推
}
int main()
{
int n, sum;
printf("请输入你想要求和的数:");
scanf("%d", &n);
sum = DigitSum(n);
printf("%d", sum);
return 0;
}
若有看不懂的地方欢迎留言询问!