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;
}
相关推荐
养军博客2 分钟前
spring boot3.0自定义校验注解:文章状态校验示例
java·前端·spring boot
lgily-12253 分钟前
常用的设计模式详解
java·后端·python·设计模式
IT成长史8 分钟前
deepseek梳理java高级开发工程师微服务面试题
java·微服务
茶本无香8 分钟前
Feign+Resilience4j实现微服务熔断机制:原理与实战
java·微服务·feignclient·熔断·resilience4j
遇见火星9 分钟前
Ansible模块——从控制节点向目标主机复制文件!
java·服务器·ansible
小码ssim12 分钟前
通过POI实现对word基于书签的内容替换、删除、插入
java·word
真的想上岸啊17 分钟前
c语言第一个小游戏:贪吃蛇小游戏05
c语言·算法·链表
香饽饽~、26 分钟前
函数式方法的实现(JDK8+)
java·服务器
付朝鲜37 分钟前
用自写的jQuery库+Ajax实现了省市联动
java·前端·javascript·ajax·jquery
小赵面校招40 分钟前
Spring Boot整合MyBatis全攻略:原理剖析与最佳实践
java·spring boot·mybatis