leetcode之将数字变成0的操作次数(C++)
2021/5/1 14:26:39
本文主要是介绍leetcode之将数字变成0的操作次数(C++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考链接
- https://leetcode-cn.com/problems/number-of-steps-to-reduce-a-number-to-zero/
题目描述
给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
解题思路
根据题目写一个循环就行了,如果追求效率,可以将相应的运算转为位运算,即对2取余等价于与1相与;除2等价于右移1位;减1等价于与-2相与。
代码
class Solution { public: int numberOfSteps(int num) { int res = 0; while (num != 0) { if (num % 2 == 0) { num /= 2; } else { num -= 1; } res += 1; } return res; } };
这篇关于leetcode之将数字变成0的操作次数(C++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain