Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
Example:
Input: 38
Output: 2 Explanation: 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 static int addDigits(int num) { int result = num; while(result >=10){ int sum = result; result = 0; while(sum>0){ result+=sum%10; sum = sum/10; } } return result;}
//看到别人这么写的 怎么推算的 不想动脑啦public int addDigits2(int num) { if (num == 0){ return 0; } if (num % 9 == 0){ return 9; } else { return num % 9; }}
git:https://github.com/woshiyexinjie/leetcode-xin