每日一题 1342. 将数字变成 0 的 *** 作次数

每日一题 1342. 将数字变成 0 的 *** 作次数,第1张

每日一题 1342. 将数字变成 0 的 *** 作次数

题:给定num,如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。求将num变成0所需次数。

解:直接按题意,位运算可以提高计算效率

class Solution:
    def numberOfSteps(self, num: int) -> int:
        step = 0
        while num:
            if num&1: #num为奇,等价于num%2 ==1
                num -= 1        
            else: 
                num = num>>1  #等价于 num // 2       
            step += 1
        return step

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存