如何计算一个非负整数的各个位上数字之和?

957 阅读1分钟

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;
}