每日一题
每天写一题,坚持记录。欢迎讨论更优解法~
题目描述
给你一个非负整数num
, 请你返回将它变成0所需要的步数。如果当前数字是偶数,你需要把它除以2;否则,减去1。
示例
输入:num = 14
输出:6
限制
0 <= num <= 10^6
解法
Python
class Solution(object):
def numberOfSteps(self, num):
"""
:type nums: int
:rtype: int
"""
step = 0 #记录步数
while num: #非零为真(True),num=0时退出循环
if num % 2 == 0: #偶数
num = num/2 #除以2
else: #奇数
num -= 1 #减去1
step += 1 #循环一次步数加1
return step #函数返回最终步数
结论
执行用时12ms,内存消耗13.1MB