1342.将数字变成0的操作次数
题目描述
将数字变成0的操作次数
思路
模拟
首先想到模拟,将num与1进行位运算来判断num的奇偶性。
记录操作次数时:
- 如果num是奇数,需要加上一次减一的操作;
- 如果num是偶数,需要加上一次除以二的操作;
使num的值变为num/2向下取整。重复以上操作,直到num=0结束。
Python实现
![Python实现](https://i-blog.csdnimg.cn/blog_migrate/057ed8a2b7792b7ad394b99804679db0.png#pic_center)
class Solution:
def numberOfSteps(self, num: int) -> int:
ans = 0
while num:
ans += num & 1
if num > 1:
ans += 1
num >>= 1
return ans
Java实现