Given a non-negative integer
num
,
repeatedly add all its digits until the result has only one digit.<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: rgb(255, 255, 255);"></span>
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?
public class Solution {
public int addDigits(int num) {
if (num == 0){
return 0;
}
if (num % 9 == 0){
return 9;
}
else{
return (num % 9);
}
}
}
把两位数依次列出,列十几个就能找到规律
discuss最短代码,思路一样
public int addDigits(int num) {
return num == 0 ? 0 : (num % 9 == 0 ? 9 : num % 9);
}