forked from fishercoder1534/Leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_1342.java
51 lines (50 loc) · 1.33 KB
/
_1342.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.fishercoder.solutions;
/**
* 1342. 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.
*
* 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
* */
public class _1342 {
public static class Solution1 {
public int numberOfSteps(int num) {
int steps = 0;
while (num != 0) {
if (num % 2 == 0) {
num /= 2;
} else {
num--;
}
steps++;
}
return steps;
}
}
}