C语言----递归函数,计算一个非负整数的数字之和

简介: C语言----递归函数,计算一个非负整数的数字之和
int DigitSum(int n)
{
    if (n == 0)//如果 n 为 0,则停止递归,因为没有更多的数字可以添加。
    {
        return 0;
    }
    else
    {
        return n % 10 + DigitSum(n / 10);
    }
    /*
    假设输入123,第一次递归,return3 和DigitSum(12)
    DigitSum(12)  return   2和DigitSum(1)
    DigitSum()   return    1和DigitSum(0)
    DigitSum(0),因为n=0,所以递归结束
    */
}
int main()
{
    int n;
    scanf("%d", &n);
    if (n < 0)
    {
        printf("输入的数要大于0");
        return 0;
    }
    int ret = DigitSum(n);
    printf("%d", ret);
    return 0;
}
相关文章
|
23天前
|
存储 C语言
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
|
23天前
|
C语言
【C语言刷题每日一题#牛客网BC6】输入三个整数,输出第二个整数
【C语言刷题每日一题#牛客网BC6】输入三个整数,输出第二个整数
|
22天前
|
存储 C语言
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
|
23天前
|
存储 安全 C语言
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
|
23天前
|
C语言
【C语言刷题每日一题】——求1到100中包含数字9的整数的个数
【C语言刷题每日一题】——求1到100中包含数字9的整数的个数
|
23天前
|
存储 C语言
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
|
22天前
|
C语言
【C语言刷题系列】交换整数的奇数位和偶数位
【C语言刷题系列】交换整数的奇数位和偶数位
|
22天前
|
存储 C语言
【C语言进阶篇】整数在内存的存储——原码、反码、补码
【C语言进阶篇】整数在内存的存储——原码、反码、补码
|
22天前
|
C语言
【C语言刷题系列】计算整数的二进制位中1的个数 (三种方式)
【C语言刷题系列】计算整数的二进制位中1的个数 (三种方式)
|
23天前
|
C语言
【c语言】汉诺塔问题详解(c语言递归函数)
【c语言】汉诺塔问题详解(c语言递归函数)
8 0