写一个递归函数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;
}
本文介绍了一个递归函数DigitSum的实现,该函数接收一个非负整数作为参数,并返回该整数各位数字相加的总和。通过几个不同进制的例子演示了如何使用该函数。

1139

被折叠的 条评论
为什么被折叠?



