力扣每日一题2022-01-31简单题:将数字变成0的 *** 作次数

力扣每日一题2022-01-31简单题:将数字变成0的 *** 作次数,第1张

力扣每日一题2022-01-31简单题:将数字变成0的 *** 作次数

将数字变成0的 *** 作次数

1342.将数字变成0的 *** 作次数

题目描述思路

模拟

Python实现Java实现


1342.将数字变成0的 *** 作次数 题目描述

将数字变成0的 *** 作次数


思路 模拟

首先想到模拟,将num与1进行位运算来判断num的奇偶性。
记录 *** 作次数时:

如果num是奇数,需要加上一次减一的 *** 作;如果num是偶数,需要加上一次除以二的 *** 作;
使num的值变为num/2向下取整。重复以上 *** 作,直到num=0结束。 Python实现

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实现

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存