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;
}
本文介绍了一个简单的算法问题:如何计算将任意正整数减少到零所需的最少步骤数。如果当前数字是偶数,则将其除以2;如果是奇数,则减1。通过实际例子展示了这一过程,并提供了完整的Java代码实现。
704

被折叠的 条评论
为什么被折叠?



