对给定范围内的一个或多个整数进行按位或的不同数字

问题描述 投票:0回答:1

我尝试使用下面的代码,但似乎有问题。范围在a和b之间。

a = int(input())
b = int(input())

my_list = []
for i in range (a, b + 1):
    my_list.append(i)
    for num in my_list:
        val = num|i
        if val not in my_list:
            my_list.append(val)
print(len(set(my_list)))

a = 7和b = 9。通过对{7,8,9}的非空子集进行按位或运算,可以生成四个整数:7,8,9和15

获得TLE。对于a = 543464242231和b = 44675426777失败。预期产量为1996604361

只想知道我在这里想念的是什么。任何提示都很棒!

python python-3.x bit-manipulation bitwise-operators bitwise-or
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.