###### Number of Steps to Reduce a Number to Zero | February Leetcoding Challenge 2021 | Day 12
Manas Sinha
Developer | Designer

## Number of Steps to Reduce a Number to Zero

`PROBLEM  STATEMENT:`
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.
```
Example 2
```Input: num = 8
Output: 4
Explanation:
Step 1) 8 is even; divide by 2 and obtain 4.
Step 2) 4 is even; divide by 2 and obtain 2.
Step 3) 2 is even; divide by 2 and obtain 1.
Step 4) 1 is odd; subtract 1 and obtain 0.
```
Example 3
```Input: num = 123
Output: 12
```
Constraints:
• `0 <= num <= 10^6`
Simulate the process to get the final answer.

## Explanation

`ALGORITHM: `
• Maintain a step count variable.
• Check if the number is divisible by 2
• If it is not even it will take one extra step to make it even, i.e., subtracting 1.
• increase the step variable by 1
• Divide the number by 2.
• repeat until reach 0

## code

``````class Solution {
public:
int numberOfSteps (int num) {
if(!num) return 0;
int step = 1;
int check_bit = 1;
while(num>1){
if(num & check_bit){
step += 1;
}
step += 1;
num = num >> 1;
}
return step;
}
};``````