# Number of Steps to Reduce a Number to Zero

Given a non-negative integer `num`

, return the number of steps to reduce it to zero. 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-**

I have been away from my daily streak of solving coding question but I am restarting my quest with this February leetcode challenge question. Here we will have to find how many steps a number need to be reduce to 0 and if the number is even we divide it by 2 and if its odd we substract by 1.

Lets move towards the code, a straight forward question where will iterate till the number becomes 0.We will have use a while loop which will run till num=0 and we have declare a counter variable and initialize it to 0.

`def numberOfSteps (self, num: int) -> int:`

counter=0

while(num!=0):

if num%2==0:

num=num//2

else:

num=num-1

counter+=1

return counter

each iteration we will check if the num is even or odd using if-else condition if it’s even we will divide the num by 2 and update the result in num variable and else part we will substract 1 from the num and update the new value of num.At the end of the if-else loop we will increment the count variable by 1 and once the number becomes 0 we will exit the while loop and return the counter value.

**Conclusion:-**

“**Real courage Courage is not having the strength to go on, it’s going on when you don’t have the strength. **“

As the quote says keep moving and keep hustling….(Cheers:-** PN**)