傳統(tǒng)的loop方法
class Solution {
public int addDigits(int num) {
while(num/10!=0)
{
int temp =0 ;
while(num!=0)
{
temp+=(num%10);
num=num/10;
}
num=temp;
}
return num ;
}
}
我有點討厭的trick方法: 對于B進制來說 N最后遺留下來的數(shù)符合以下規(guī)則:
1.如果N=0,遺留下來的數(shù)就是0,
2.對于N!=0且N%(B-1)==0的數(shù),遺留下來的數(shù)是(B-1).
3對于N!=0且N%(B-1)!=0的數(shù),遺留下來的數(shù)是N mod(B-1);
綜上可以寫成:remian(n) = 1 + (N - 1) % (B-1);
對于十進制,有:
class Solution {
public:
int addDigits(int num) {
return 1 + (num - 1) % 9;
}
};