实现计算一个数的每位之和(递归)

       

目录

          思路

                1.1 输入一个数

                1.2 创建并调用一个DigitSum函数

                1.3 在函数体中将每一个数拆开并加起来

                1.4 将值返回来

   


1.1 输入一个数

                利用scanf让计算机先接收一个数

#include <stdio.h>
int main
{
    int input=0;
    scanf("%d",&inpute);
}

1.2 创建并调用一个DigitSum函数

#include <stdio.h>
int main()
{
    int input=0;
    scanf("%d",&input);
    int ret=DigitSum(input);//用ret来接收最后计算的结果
    printf("%d",input);//将接收到的结果打印出来
}

1.3在函数体中将每一个数拆开

        思想:

                1.如果这个数是个两位数那就将他分开,如果是个一位数就直接将他返回

#include <stdio.h>
int DigitSum(int i)
{
    if(i>9)
    {
    
    }
    else
    return a
}
int main()
{
    int input=0;
    scanf("%d",&input);
    int ret=DigitSum(input);//用ret来接收最后计算的结果
    printf("%d",input);//将接收到的结果打印出来
}

                2.将大于9的多位数拆开

                       我们知道用来将数字一个一个拆开用的是取商,得到拆下来的每一个数是用取余

#include <stdio.h>
int DigitSum(int i)
{
    if(i>9)
    {
    return DigitSum(i/10)+i%10//此时将i先通过递归拆到最后两位取余并相加
    }
    else
    return a//将最后一位直接返回
}
int main()
{
    int input=0;
    scanf("%d",&input);
    int ret=DigitSum(input);//用ret来接收最后计算的结果
    printf("%d",input);//将接收到的结果打印出来
}

1.4 将值返回来

        为什么要拿出这个单独说一下呢

                因为我突然发现 ,如果返回的是多个值的话,最后会将返回的值一起加起来


写的比较简陋,如果有什么不对的地方还请指正

猜你喜欢

转载自blog.csdn.net/weixin_60359155/article/details/121135394