写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,
例如,调用DigitSum(1234),则应该返回1+2+3+4,它的和是10
#include<stdio.h>
/*int DigitSum(int n)//非递归实现
{
if(0==n)
return 0;
else
{
int ret=0;
while(n)
{
ret+=n%10;
n=n/10;
}
return ret;
}
}*/
int DigitSum(int n)//递归实现
{
if(n==0)
return 0;
if(n)
{
return DigitSum(n/10)+(n%10);
}
}
int main()
{
printf("%d\n",DigitSum(123));//10进制 123 输出6
printf("%d\n",DigitSum(0123));//8进制 83 输出11
printf("%d\n",DigitSum('\123'));//转义8进制 83 输出11
printf("%d\n",DigitSum(0X123)); //16进制 291 输出12
printf("%d\n",DigitSum('\X123'));//转义16进制 291 输出12
return 0;
}