Leetcode - 将数字变成0的操作次数

将数字变成0的操作次数

给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。

示例 1:

复制代码
输入:num = 14
输出:6
解释:
步骤 1) 14 是偶数,除以 2 得到 7 。
步骤 2) 7 是奇数,减 1 得到 6 。
步骤 3) 6 是偶数,除以 2 得到 3 。
步骤 4) 3 是奇数,减 1 得到 2 。
步骤 5) 2 是偶数,除以 2 得到 1 。
步骤 6) 1 是奇数,减 1 得到 0 。

示例 2:

复制代码
输入:num = 8
输出:4
解释:
步骤 1) 8 是偶数,除以 2 得到 4 。
步骤 2) 4 是偶数,除以 2 得到 2 。
步骤 3) 2 是偶数,除以 2 得到 1 。
步骤 4) 1 是奇数,减 1 得到 0 。

示例 3:

复制代码
输入:num = 123
输出:12

提示:

  • 0 <= num <= 10^6

解答

java 复制代码
public static int numberOfSteps(int num) {
    int count = 0;
    while (num != 0) {
        num = num % 2 == 0 ? num / 2 : num - 1;
        count++;
    }
    return count;
}
相关推荐
Yang_jie_034 分钟前
笔记:数据结构(顺序表)
数据结构·windows·笔记
栈溢出了21 分钟前
Java Lambda 表达式笔记
java·开发语言·intellij-idea
会周易的程序员22 分钟前
使用 pybind11 封装 C++ 日志库 microLog 为 Python 模块
java·c++·python·物联网·架构·日志·aiot
zhixingheyi_tian31 分钟前
一份GC日志的解读
java·开发语言
ywl47081208741 分钟前
ArrayList和LinkedList内部的实现原理和区别
java·java基础
Fox爱分享1 小时前
字节二面:1000瓶酒,有一瓶是毒药,多少只老鼠可以查出来?
算法·面试·程序员
沉静的小伙1 小时前
Spring事务
java·数据库·spring
+wacyltd大模型备案算法备案1 小时前
大模型评估测试题库怎么建?风险分类、测试样本的完整方法
人工智能·算法·安全·分类·大模型·大模型备案·大模型上线登记
apihz1 小时前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
Fox爱分享1 小时前
字节二面智力题:100只老虎和1只羊关在一起,这只羊会不会被吃?
算法·面试·程序员