leetcode1342. Number of Steps to Reduce a Number to Zero

Posted seyjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode1342. Number of Steps to Reduce a Number to Zero相关的知识,希望对你有一定的参考价值。

题目如下:

Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.

Example 1:

Input: num = 14
Output: 6
Explanation: 
Step 1) 14 is even; divide by 2 and obtain 7. 
Step 2) 7 is odd; subtract 1 and obtain 6.
Step 3) 6 is even; divide by 2 and obtain 3. 
Step 4) 3 is odd; subtract 1 and obtain 2. 
Step 5) 2 is even; divide by 2 and obtain 1. 
Step 6) 1 is odd; subtract 1 and obtain 0.

Example 2:

Input: num = 8
Output: 4
Explanation: 
Step 1) 8 is even; divide by 2 and obtain 4. 
Step 2) 4 is even; divide by 2 and obtain 2. 
Step 3) 2 is even; divide by 2 and obtain 1. 
Step 4) 1 is odd; subtract 1 and obtain 0.

Example 3:

Input: num = 123
Output: 12

Constraints:

  • 0 <= num <= 10^6

解题思路:送分题。

代码如下:

class Solution(object):
    def numberOfSteps (self, num):
        """
        :type num: int
        :rtype: int
        """
        res = 0
        while num > 0:
            res += 1
            if num % 2 == 0:
                num = num / 2
            else:
                num = num - 1
        return res

 

以上是关于leetcode1342. Number of Steps to Reduce a Number to Zero的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode --- 1342. Number of Steps to Reduce a Number to Zero 解题报告

算法leetcode每日一练1342. 将数字变成 0 的操作次数

算法leetcode每日一练1342. 将数字变成 0 的操作次数

1342. Number of Steps to Reduce a Number to Zero

Leetcode 200. Number of Islands

[LeetCode] Number of Islands