1342. Number of Steps to Reduce a Number to Zero

Posted wentiliangkaihua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1342. 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 {
    public int numberOfSteps (int num) {
        int k = num;
        int res = 0;
        while(k != 0){
            if(k % 2 != 0){
                res++;
                k--;
            }
            else {
                res++;
                k /= 2;
            }
        }
        return res;
    }
}

 

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