icebound通过勤工俭学,攒了一小笔钱,于是他决定出国旅游。这天,icebound走进了一个神秘的神殿。神殿由八位守护者守卫,总共由64个门组成,每一道门后都有一个迷宫,迷宫的大小均为100×100。icebound在迷宫中总共耗时T小时,消耗食物K公斤。历经千辛万苦之后,icebound终于穿越了迷宫,到达了神殿的中心。神殿的中心有一个宝箱。宝箱上显示有两个正整数l和r。icebound苦思冥想,终于发现一些打开宝箱的线索。你需要找到一个数P,它具有一个美妙的性质:它是[l,r]中所有数的二进制表示里1的个数最多的一个数。如果你发现了这个美妙的数字,你就可以打开宝箱,获得巨额财富。
比如[4,8]中:
4: 0100
5: 0101
6: 0110
7: 0111
8: 1000
二进制表示中1的个数最多的数是7,它含有3个1。
map(func, iter)
map函数返回的是一个迭代器,在该迭代器中, func函数将应用于 可迭代对象iter中的每一个元素。
bin(x)
将输入的整数x转变为一个前缀为“0b”的二进制字符串。
l, r = map(int, input().split())
max_count = 0
max_num = l
for i in range(l, r+1):
count = bin(i).count('1')
if count > max_count:
max_count = count
max_num = i
print(max_num)