当前位置: 首页 > news >正文

华为OD机考双机位C卷- 不含101的数(Java Python JS C/C++ GO )

最新华为上机考试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
华为OD机考双机位C卷- 不含101的数

题目描述

小明在学习二进制时,发现了一类不含 101的数,也就是:

将数字用二进制表示,不能出现 101 。
现在给定一个整数区间 [l,r] ,请问这个区间包含了多少个不含 101 的数?

输入描述

输入的唯一一行包含两个正整数 l, r( 1 ≤ l ≤ r ≤ 10^9)。

输出描述

输出的唯一一行包含一个整数,表示在 [l,r] 区间内一共有几个不含 101 的数。

示例1

输入

1 10

输出

8

说明

区间 [1,10] 内, 5 的二进制表示为 101 ,10的二进制表示为 1010 ,因此区间 [ 1 , 10 ] 内有 10−2=8 个不含 101的数。

示例2

输入

10 20

输出

7

说明

区间 [10,20] 内,满足条件的数字有 [12,14,15,16,17,18,19] 因此答案为 7。

解题思路

本题乍看是很简单的题目,直接进制转换,暴力法不就得了。但是你注意看范围是【1 ≤ l ≤ r ≤ 10^9】,暴力肯定会超时。这题使用的是数位DP

数位dp总结 之 从入门到模板_wust_wenhao的博客-CSDN博客

具体思路是从高位到低位逐位枚举,对于每一位,枚举它的取值,并根据前一位和前两位的值来判断是否符合条件。同时,使用记忆化数组来避免重复计算。

具体实现中,可以将数字转换为二进制数,然后递归处理每一位。递归函数中,p表示当前处理到的二进制位,limit表示当前位是否受到上限制,f表示记忆化数组,arr表示二进制数,pre表示前一位的值,prepre表示前两位的值。递归结束条件是处理完所有二进制位,此时返回1。在递归过程中,统计符合条件的数的个数,并使用记忆化数组避免重复计算。

Java

importjava.util.
http://www.jsqmd.com/news/309656/

相关文章:

  • 创客匠人洞察:信任重构——AI智能体在知识消费决策中的隐性价值
  • 创客匠人视角:小微创作者的破局点——轻量化AI智能体与知识服务的“最小可行闭环”
  • 华为OD机考双机位C卷 - 仿LISP运算 (Java Python JS C/C++ GO )
  • 创客匠人深度观察:AI智能体如何重塑知识变现的底层逻辑
  • 深入解析:硅谷甄选(续2)首页
  • 华为OD机考双机位C卷 - 统计差异值大于相似值二元组个数 (Java Python JS C/C++ GO )
  • 关于流的思考
  • 创客匠人视角:创始人IP打造与AI智能体的共生进化
  • 底层视觉及图像增强-项目实践理论补充(十六-0-(14):从多曝光到HDR:原理、工程与AI演进):从奥运大屏,到手机小屏,快来挖一挖里面都有什么 - 详解
  • 社会网络仿真软件:Gephi_(10).图形美化与可视化技巧
  • 收藏!5年Java开发被优化后,我发现大模型才是程序员破局捷径
  • 采购背锅指南:如何用数据证明“你真的为公司省了钱”?
  • 【必收藏】ReAct范式详解:让大模型兼具推理与行动能力的核心方法
  • 收藏备用!35+程序员转型AI指南:避开坑、选对岗,解锁职业新赛道
  • 收藏!大模型“执行行动”落地制造业:从技术逻辑到实战案例,小白也能看懂
  • 混合智能提示系统研究:提示工程架构师的技术趋势分析
  • 电商建站神器:Shopify与WordPress的优劣势全方位对比
  • JSON文本格式化
  • 别搞混了!Agent Skill 和 MCP 到底有什么区别?
  • 2026 护网行动:从 “演练” 到 “常态化考核” 的本质转变​
  • 2026漏洞挖掘指南
  • 社会网络仿真软件:Gephi_(5).节点与边的属性设置
  • 社会网络仿真软件:Gephi_(6).可视化设置与技巧
  • 渗透测试 Web安全
  • web十大攻击及防御
  • 社会网络仿真软件:Gephi_(3).Gephi界面解析
  • SSM医院住院管理系统7lio5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • fuxa 导入自定义的svg图标
  • 多项目同时进行如何做好进度管理?
  • SSM医院预约挂号管理系统q9ig2(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面