## Similar Problems

Similar Problems not available

# Number Of Steps To Reduce A Number To Zero - Leetcode Solution

## Companies:

LeetCode: Number Of Steps To Reduce A Number To Zero Leetcode Solution

Difficulty: Easy

Topics: math bit-manipulation

The problem "Number Of Steps To Reduce A Number To Zero" on LeetCode asks us to determine the minimum number of steps required to reduce a non-negative integer to zero. The steps are as follows:

- If the number is even, divide it by two.
- If the number is odd, subtract 1 from it.

We can solve this problem by using a simple iterative approach. We start with the given non-negative integer and keep applying the above steps until we reduce it to zero. We keep count of the number of steps that we take to reach zero.

Here's the complete solution in Python:

```
def numberOfSteps (num: int) -> int:
steps = 0
while num > 0:
if num % 2 == 0:
num = num // 2
else:
num -= 1
steps += 1
return steps
```

In the code above, we initialize a variable `steps`

to 0, which will keep track of the number of steps we take. We then run a loop while the given non-negative integer `num`

is greater than 0. Inside the loop, we check if `num`

is even or odd using the modulus operator `%`

. If it's even, we divide it by 2 using integer division `//`

. Otherwise, we subtract 1 from it. We increment the `steps`

counter after every operation.

Once the loop ends, we return the final value of `steps`

, which will be the minimum number of steps required to reduce the given non-negative integer to zero.

Let's test our solution with a few examples:

```
assert numberOfSteps(14) == 6 # 14 -> 7 -> 6 -> 3 -> 2 -> 1 -> 0
assert numberOfSteps(8) == 4 # 8 -> 4 -> 2 -> 1 -> 0
assert numberOfSteps(123) == 12 # 123 -> 122 -> 61 -> 60 -> 30 -> 15 -> 14 -> 7 -> 6 -> 3 -> 2 -> 1 -> 0
```

Our solution passes all the test cases and runs in O(log N) time complexity, where N is the given non-negative integer.

## Number Of Steps To Reduce A Number To Zero Solution Code

`1`