← All problems

258. Add Digits

EasyOpen on LeetCodeProblem statement

Problem Statement

258. Add Digits

Easy


Given an integer num, repeatedly add all its digits until the result has only one digit, and return it.

 

Example 1:

Input: num = 38
Output: 2
Explanation: The process is
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2 
Since 2 has only one digit, return it.

Example 2:

Input: num = 0
Output: 0

 

Constraints:

 

Follow up: Could you do it without any loop/recursion in O(1) runtime?

C++ — alternative 1

Source file
class Solution {
public:
    int addDigits(int num) {
        int n=0;
        while(num>9){
            while(num){
                n+=num%10;
                num/=10;
            }
            num=n;
            n=0;
        }
        return num;
    }
};