Q:
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.
A:
1.第一思路是将个位与高位分解出来相加,循环直到和小于十为止,代码如下
public class Solution {
public int addDigits(int num) {
while(num >= 10)
{
num = num/10 + num%10;
}
return num;
}
}
2.我们观察一下函数的输入输出规律
Input:0,1,2,3,4,5,6,7,8,9,10,11,12,13~~~
Ouput:0,1,2,3,4,5,6,7,8,9,1,2,3,4~~~
可以发现输出是以九个为一组循环的,因此只需注意0及9的倍数的输入数字即可