Trainer_Marvin @ 2023-01-31 03:54:05
如题,按理来说,n >>= 1与n /= 2应该是同样的效果,可下面的代码在不使用位运算符时居然会产生错误的结果,这是为什么?
# P3612
# 分冶
n = input().split()
a, b = n[0], int(n[1])
x = len(a)
while x < b:
x <<= 1 # 此处如为x *= 2会WA
while b > len(a):
x >>= 1 # 此处如为x /= 2会WA
if b == (x+1):
b = x
elif b <= x:
pass
else:
b = ((b-1) - x)
print(a[int(b-1)])
by murder_drones @ 2023-01-31 03:58:58
我没有python的软件,你要不在疑问处输出每次位移后的结果试试?
by Hisaishi_Kanade @ 2023-01-31 06:39:53
@Trainer_Marvin python中/是浮点除
by Trainer_Marvin @ 2023-01-31 13:14:59
@bye_wjx 麻烦问一下变为浮点数后会带来什么后果呢?if-eilf结构中的判断条件会受到什么影响?