输出一个非负整数的每位数之和
作者:互联网
几天给大家来一道简单的循环练习题
题目描述如下:
输入一个大于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