问题描述:给定一个整数num,每一步将其变为num的一半(向下取整),求最少需要几步可以将其变为0。 代码示例:
def numberOfSteps(num: int) -> int:
steps = 0
while num:
if num % 2 == 0:
num //= 2
else:
num -= 1
steps += 1
return steps
public int numberOfSteps (int num) {
int steps = 0;
while (num > 0) {
if (num % 2 == 0) {
num /= 2;
} else {
num--;
}
steps++;
}
return steps;
}
class Solution {
public:
int numberOfSteps(int num) {
int steps = 0;
while (num) {
if (num % 2 == 0) {
num /= 2;
} else {
num--;
}
steps++;
}
return steps;
}
};
var numberOfSteps = function(num) {
let steps = 0;
while(num) {
if(num % 2 === 0) {
num /= 2;
} else {
num--;
}
steps++;
}
return steps;
};