1. 題目
如何計(jì)算一個(gè)非負(fù)整數(shù)的各個(gè)位上數(shù)字之和?
例如:
100,各位上數(shù)字和 = 1 + 0 + 0 = 1
35,各位上數(shù)字和 = 3 + 5 = 8
216,各位上數(shù)字和 = 2 + 1 + 6 = 9
2. 解題思路
<1> 對(duì)非負(fù)整數(shù) x 每次對(duì)10取余(即可獲得x的個(gè)位上數(shù)字)
<2> 然后再將 x 除以10
<3> 不斷重復(fù)上述操作,直到 x 為0,最終將每次取余的結(jié)果加起來(lái)。
舉例:
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,結(jié)束
則 result = 6 + 1 + 2 = 9
3. 代碼實(shí)現(xiàn)
public int getDigitSum(int num) {
int sum = 0;
while (num != 0) {
sum += num % 10;
num /= 10;
}
return sum;
}