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.
给一个数字num, 问需要多少步能把它变为0,
一步是这样的:
如果是偶数,就除以2,
奇数就-1.
思路:
就按题目说的来,偶数/=2, 奇数-1, 直到num为0
public int numberOfSteps(int num) {
int cnt = 0;
while(num > 0) {
if(num % 2 == 0) {
num /= 2;
} else {
num -= 1;
}
cnt ++;
}
return cnt;
}