題目描述 各位相加
給定一個(gè)非負(fù)整數(shù) num,反復(fù)將各個(gè)位上的數(shù)字相加叉袍,直到結(jié)果為一位數(shù)涮毫。
示例
輸入: 38
輸出: 2
解釋: 各位相加的過(guò)程為:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位數(shù)坦仍,所以返回 2水慨。
解題思路
三位數(shù)整數(shù) n=100a+10b+c得糜,變化后 addn=a+b+c敬扛,兩者的差值n-addn=99a+9b 是9的倍數(shù)。
說(shuō)明n和addn對(duì)于9朝抖,即n%9==addn%9啥箭。那么變化到最后,與n同余的個(gè)位數(shù)治宣,也就是n%9
代碼
class Solution {
public:
int addDigits(int num) {
if(num<10) return num;
if(num%9==0) return 9;
else return num%9;
return 0;
}
};