求数字的每一位之和
- 题目描述:
- 解法思路:
- 解法代码:
- 运行结果:
题目描述:
输入一个整数m,求这个整数m的每⼀位之和,并打印。
测试1:
输⼊:1234
输出:10
测试2:
输⼊:366
输出:15
解法思路:
我们可以通过不断获取该整数的个位数,然后将该位数从整数中删除,重复这个过程直到整数为0,
依次求得每个位数的值,并将它们相加,即可得到整数的每⼀位之和。
1. 首先,我们可以使用一个变量 sum 来记录每一位的和,初始值为0。然后,我们可以使用循环来不断地取出整数m的最后⼀位,并将其加入到 sum 中,直到m变为0。
2. 在每次循环中,我们可以通过取模运算( % )和整除运算( / )来获取m的最后⼀位和去掉最后⼀位的新值。具体来说,我们可以使用 m % 10 来获取m的最后⼀位数字,而通过 m / 10可以获取去掉最后⼀位后的新值。
3. 当m变为0时,整个求和过程结束,此时 sum 中存储的就是整数m的每⼀位之和。最后,我们可以输出 sum 的值即可。
解法代码:
#include <stdio.h>
int digit_sum(int m)
{//定义变量记录每⼀位的和int s = 0;//当前数还不为0,获取其个位数加到s中while (m){s += m % 10;//删除其个位数m /= 10;}//返回每⼀位的和return s;
}
int main()
{int m = 0;//输⼊整数scanf("%d", &m);//获取每⼀位的和int ret = digit_sum(m);printf("%d\n", ret);return 0;
}