<p>Given an integer <code>num</code>, repeatedly add all its digits until the result has only one digit, and return it.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre> <strong>Input:</strong> num = 38 <strong>Output:</strong> 2 <strong>Explanation:</strong> The process is 38 --> 3 + 8 --> 11 11 --> 1 + 1 --> 2 Since 2 has only one digit, return it. </pre> <p><strong>Example 2:</strong></p> <pre> <strong>Input:</strong> num = 0 <strong>Output:</strong> 0 </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>0 <= num <= 2<sup>31</sup> - 1</code></li> </ul> <p> </p> <p><strong>Follow up:</strong> Could you do it without any loop/recursion in <code>O(1)</code> runtime?</p>