使用递归法,求输入一个非负整数,返回组成它的数字之和。例如,输入1234,输出1+2+3+4=10,输入1729,输出19。
通过分解出各个位数来递归计算。
#include<stdio.h>
#include<stdlib.h>
//首先要把该数分解,知道这个数是几位数,再返回每位数的累加和
DigitSum(int n)
{
if (n / 10== 0)
{
return n;
}
else
{
return n%10 + DigitSum(n / 10);
}
}
int main()
{
printf("请输入一个非负整数:");
int n;
scanf("%d",&n);
printf("%d\n",DigitSum(n));
system("pause");
return 0;
}