题目
1342.将数字变成 0 的操作次数
题目大意
给你一个非负整数 num
,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
样例
数据规模
思路
直接模拟这个过程就可以了:如果
n
u
m
num
num是偶数就直接
除
2
除2
除2,否则
n
u
m
−
−
num--
num−−,每次答案
a
n
s
ans
ans都
+
1
+1
+1,最后return ans
。
代码
class Solution {
public:
int numberOfSteps(int num) {
int ans=0;
while(num){
if(num%2)num--,ans++;
else num/=2,ans++;
}
return ans;
}
};