'''
小明在学习二进制时,发现了一类不含 101的数,也就是:
将数字用二进制表示,不能出现101。
现在给定一个整数区间[l,r] ,请问这个区间包含了多少个不含101的数?
输入描述
输入的唯——行包含两个正整数l, r(1slsrs10^9) 。
输出描述
输出的唯——行包含一个整数,表示在[l,r]区间内一共有几个不含 101的数。
样例样例一:
输入
1 10
输出
8
样例解释
区间[1,10]内, 5的二进制表示为101, 10的二进制表示为1010,因此区间[1,10]内有10-2-8个不含101的数。
样例二:
输入
10 20
输出
7
样例解释
区间[10,20]内,满足条件的数字有[12,14,15,16,17,18,19]因此答案为7。
'''
l, r = map(int, input().split())
count = 0
for i in range(l, r):
str_101 = str(bin(i)) # 转化为二进制字符串
if '101' not in str_101:
count += 1
print(count)不含 101 的数 解题思路
最新推荐文章于 2025-07-12 00:51:09 发布
该问题涉及计算在指定的整数区间[l,r]中,二进制表示不包含序列101的数字个数。例如,区间[110,10]内有8个这样的数字,因为5和10的二进制表示包含了101,所以排除在外。
Python3.8
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
您可能感兴趣的与本文相关的镜像
Python3.8
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
3541

被折叠的 条评论
为什么被折叠?



