ProblemGiven a non-negative integer num, repeatedly add all its digits until the result has only one digit.Example:Input: 38Output: 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?Solution 1class 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; }}Solution 2 - Mod 9public class Solution { public int addDigits(int num) { if (num == 0){ return 0; } if (num % 9 == 0){ return 9; } else { return num % 9; } }}