华为OD机试真题- 不含101的数【2023Q1】【JAVA、Python、C++】

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

- 将数字用二进制表示,不能出现101。

现在给定一个正整数区间,请问这个区间内包含了多少个不含101的数?
输入描述:
输入的唯一一行包含两个正整数。
输出描述:
输出的唯一一行包含一个整数,表示在区间内一共有几个不含101的数。
补充说明:
 收起
示例1
输入:
1 10
输出:
8
说明:
区间[1,10]内,5的二进制表示为101,10的二进制表示为1010,因此除了5与10不满足条件外,其他数字都满足条件,因此答案为8。
示例2
输入:
10 20
输出:
7
说明:
区间[10,20]内,满足条件的数字有[12,14,15,16,17,18,19],因此答案为7。

import sys
if __name__ == "__main__":
    def judge(n):
        if '101' in bin(n):return True
        else:return False

    tmp=sys.stdin.readline().strip().split()
    l,r=int(tmp[0]),int(tmp[1])
    # l,r=1,10
    result=0
    i=l
    while

你可能感兴趣的:(华为OD机试题库2023年,c++,开发语言,python,华为)