1. 题目
如何计算一个非负整数的各个位上数字之和?
例如:
100,各位上数字和 = 1 + 0 + 0 = 1
35,各位上数字和 = 3 + 5 = 8
216,各位上数字和 = 2 + 1 + 6 = 9
2. 解题思路
<1> 对非负整数 x 每次对10取余(即可获得x的个位上数字)
<2> 然后再将 x 除以10
<3> 不断重复上述操作,直到 x 为0,最终将每次取余的结果加起来。
举例:
x = 216,x % 10 = 216 % 10 = 6
x = x/10 = 21,x % 10 = 21 % 10 = 1
x = x/10 = 2,x % 10 = 2 % 10 = 2
x = x/10 = 0,结束
则 result = 6 + 1 + 2 = 9
3. 代码实现
public int getDigitSum(int num) {
int sum = 0;
while (num != 0) {
sum += num % 10;
num /= 10;
}
return sum;
}