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;
}
相关推荐
Android小码家2 小时前
Vehicle 实战 自定义属性+测试demo
java·c++·framework·vhal·vehicle
范同学~2 小时前
固定表头+第一列+最后一列
java·服务器·前端
hetao17338372 小时前
2026-10-19 hetao1733837 的刷题记录
c++·算法
辛苦才能2 小时前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
随风爱学习2 小时前
JAVA学习之异常
java
m0_639906942 小时前
HashMap:哈希扰动、扩容源码、红黑树转换、并发问题
java·算法·哈希算法
Roll圈圈2 小时前
长链接太丑影响转化率?这个短链工具让你的推广链接更专业
java
神魔皆以血嗜2 小时前
Java 存储金额
java·后端
JasmineX-13 小时前
数据结构(笔记)——顺序栈
c语言·数据结构·笔记
SL_staff3 小时前
周报越厚问题越拖?用结构化执行机制让周报回归决策价值
java·spring cloud·开源