码迷,mamicode.com
首页 > 其他好文 > 详细

1342. Number of Steps to Reduce a Number to Zero (E)

时间:2021-02-16 12:04:19      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:VID   Plan   代码   lang   思路   code   ISE   操作   xpl   

Number of Steps to Reduce a Number to Zero (E)

题目

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

题意

将一个数进行若干次偶数/2、奇数-1的操作,直至其变为0,求需要的操作次数。

思路

直接照做即可。


代码实现

Java

class Solution {
    public int numberOfSteps (int num) {
        int steps = 0;
        while (num > 0) {
            num = num % 2 == 0 ? num / 2 : num - 1;
            steps++;
        }
        return steps;
    }
}

1342. Number of Steps to Reduce a Number to Zero (E)

标签:VID   Plan   代码   lang   思路   code   ISE   操作   xpl   

原文地址:https://www.cnblogs.com/mapoos/p/14398906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!