Number of Steps to Reduce a Number to Zero

Number of Steps to Reduce a Number to Zero

Sergei Golitsyn

https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero/

Given an integer num, return the number of steps to reduce it to zero.

In one step, if the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.

 

Example 1:

Input: num = 14
Output: 6
Explanation: 
Step 1) 14 is even; divide by 2 and obtain 7. 
Step 2) 7 is odd; subtract 1 and obtain 6.
Step 3) 6 is even; divide by 2 and obtain 3. 
Step 4) 3 is odd; subtract 1 and obtain 2. 
Step 5) 2 is even; divide by 2 and obtain 1. 
Step 6) 1 is odd; subtract 1 and obtain 0.

Solution

Based on the example, our solution will be simple stupid. Firstly let's understand if is it an even number. Based on it, we can divide numbers or subtract.

  public int numberOfSteps(int num) {
    int steps = 0;
     
    while(num != 0){
      if (num % 2 == 0){
        num /= 2;
      } else {
        num -= 1;
      }
      steps ++;
    }
     
    return steps;
  }


Report Page