其他分享
首页 > 其他分享> > 输出一个非负整数的每位数之和

输出一个非负整数的每位数之和

作者:互联网

几天给大家来一道简单的循环练习题

题目描述如下:

输入一个大于0的非负整数,输出其每位之和

例如:

6=6;

12=1+2=3

721=7+2+1=10

1001=1+0+0+1

这题思路很简单,我们只要对这个数模上10,就得到了个位,这个个位我们可以定义一个变量储存起来,然后把那个数再除以10,就可以把个位消去了,再模上10,让那个定义的变量再加上这个得数,反复这两步

所以我们可以把上面两步写成一个while循环

当那个要计算的数<0时就可以停止循环了

代码如下:
 

#include <stdio.h>
int number(int num)
{
    int sum = 0;
    while (num > 0)         //当num<0时,停止循环
    {
        sum = sum + num % 10;       //模10得到个位
        num = num / 10;             //除10把个位去掉
    }
    return sum;
}
int main()
{
    int num = 0;
    printf("请输入大于0的非负的整数\n");
    scanf("%d", &num);
    int ret = number(num);
    printf("%d", ret);
    return 0;
}

如果大家会了这道题 

还可以去挑战一下这个题的进阶,258. 各位相加 - 力扣(LeetCode) (leetcode-cn.com) 

相信你们一定可以做出来的

如果有哪里写的不好,请大家指针,欢迎大家批评,我一定会往好的方向一直努力的

标签:10,每位,非负,int,整数,个位,while,num
来源: https://blog.csdn.net/m0_64247174/article/details/122384971