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

笔试-二进制

应用题

将符合区间[l,r]内的十进制整数转换为二进制表示,请问不包含“101”的整数个数是多少?

实现

l = int(input("请输入下限l,其值大于等于1:"))
r = int(input("请输入上限r,其值大于等于l:"))binary_list = []
# 默认值为0,对应数值为1,未反转
def decimal_to_binary(number):if number == 0:# 第一次要对空列表配置,否则后面的替换会报错if len(binary_list) == 0:binary_list.append(0)else:binary_list[0] = 0  else:  N = 0# 当次二进制临界值while 2**N <= number:N = N + 1# 第一次要对空列表配置,否则后面的替换会报错if len(binary_list) == 0:# 设置列表长度为N,全元素置0for i in range(0, N):binary_list.append(0)# 临界值位置元素置1binary_list[N-1] = 1left_number = number - 2**(N-1)if left_number > 0:decimal_to_binary(left_number)# 27 = 16 + 8 + 2 + 1
# 10 = 8 + 2
# decimal_to_binary(32)
# decimal_to_binary(0)
# decimal_to_binary(27)
# decimal_to_binary(10)# binary_list.reverse()
# print(binary_list)# string = ""
# for i in binary_list:
#     string = string + str(i)
# print(f"二进制为:{string}")collections = []
# 范围内的二进制数,构建二维新列表
for i in range(l, r+1):decimal_to_binary(i)binary_list.reverse()# 长度小于3的列表一定没有“101”if len(binary_list) >= 3:collections.append(binary_list)# 再清空binary_list = []print(collections)sum = 0
for i in range(0, len(collections)):for j in range(0, len(collections[i])-2):if collections[i][j] == 1 and collections[i][j+1] == 0 and collections[i][j+2] == 1:sum = sum + 1print(f"不包含“101”的整数个数为{len(collections)-sum}。")
输入下限l,其值大于等于1:2
请输入上限r,其值大于等于l:10
[[1, 0, 1], [1, 1, 0], [1, 1, 1], [1, 0, 0, 0], [1, 0, 0, 1], [1, 0, 1, 0]]
不包含“101”的整数个数为4。
http://www.lryc.cn/news/529809.html

相关文章:

  • springboot 2.7.6 security mysql redis jwt配置例子
  • FreeRTOS从入门到精通 第十六章(任务通知)
  • TensorFlow 简单的二分类神经网络的训练和应用流程
  • 无人机图传模块 wfb-ng openipc-fpv,4G
  • .cc扩展名是什么语言?C语言必须用.c为扩展名吗?主流编程语言扩展名?Java为什么不能用全数字的文件名?
  • 【MyDB】4-VersionManager 之 3-死锁及超时检测
  • 【Linux】使用管道实现一个简易版本的进程池
  • 【OpenGL】OpenGL游戏案例(二)
  • 28. 【.NET 8 实战--孢子记账--从单体到微服务】--简易报表--报表定时器与报表数据修正
  • Java 泛型<? extends Object>
  • FPGA|使用quartus II通过AS下载POF固件
  • “新月之智”智能战术头盔系统(CITHS)
  • php:代码中怎么搭建一个类似linux系统的crontab服务
  • 【LeetCode: 958. 二叉树的完全性检验 + bfs + 二叉树】
  • MinDoc 安装与部署
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(基础组件实现)
  • windows系统如何检查是否开启了mongodb服务
  • VS安卓仿真器下载失败怎么办?
  • 计算机网络一点事(24)
  • 视频拼接,拼接时长版本
  • 制造企业的成本核算
  • doris:高并发导入优化(Group Commit)
  • LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略
  • 鸿蒙HarmonyOS实战-ArkUI动画(页面转场动画)_鸿蒙arkui tab 切换动画
  • 图漾相机-ROS2-SDK-Ubuntu版本编译(新版本)
  • 小程序的协同工作与发布
  • 解锁维特比算法:探寻复杂系统的最优解密码
  • 计算机网络一点事(20)
  • java求职学习day23
  • Vue-cli 脚手架搭建