Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
For example:
Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
题目分析
对于给定的数字num,对其各位数字进行累加,直到只有一个数字,输出该数字。
解:
0 1 2 3 4 5 6 7 8 9 //sum
0 1 2 3 4 5 6 7 8 9 //num
10 11 12 13 14 15 16 17 18 //num
19 20 21 22 23 24 25 26 27 //num
Solution:
int addDigits(int num)
{
if (num == 0)
return 0;
return num % 9 ? num % 9 : 9;
}