Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.git
Example:oop
Input: 38
Output: 2
Explanation: The process is like: 3 + 8 = 11, 1 + 1 = 2.code
Since 2 has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?it
class Solution { public int addDigits(int num) { int sum = 0, cur = num; if (num < 10) return num; while (num >= 10) { while (num >= 10) { sum += num%10; num /= 10; } sum += num; if (sum >= 10) { num = sum; sum = 0; } else return sum; } return sum; } }
public class Solution { public int addDigits(int num) { if (num == 0){ return 0; } if (num % 9 == 0){ return 9; } else { return num % 9; } } }