Add Digits
原題目給定一個非負整數,不斷重複的累加每一個位元至變成個位數位元為止。
舉例來說:
num = 38 ,則:
3 + 8 = 11。
1 + 1 = 2。 (到此回傳)
以下為程式碼:
int addDigits(int num) {
int numSum = 0;
while(num != 0)
{
numSum += num % 10;
num = num / 10;
}
if(numSum >= 10)
return addDigits(numSum);
else
return numSum;
}
那麼,如果要使之時間複雜度為O(1)呢?數字根- 維基百科
可以透過以下公式來達到這個需求:

沒有留言:
張貼留言