例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
输入:1729,输出:19
法一:递归
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
运行代码:
#include<stdio.h>
int DigitSum(int n)
{
if (n < 10)
{
return n;
}
else
{
return n % 10 + DigitSum(n / 10);
}
}
int main()
{
int a = 0;
scanf("%d", &a);
int sum = DigitSum(a);
printf("%d", sum);
return 0;
}
法二:循环
运行代码:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int n = 0;
int sum = 0;
scanf("%d", &n);
b = n;
while (b > 0)
{
a = b % 10;
b = b / 10;
sum = sum + a;
}
printf("%d", sum);
return 0;
}