def recursion(x):
if x == 0:
return 0
else:
return x << 1 + recursion(x - 1)
print(recursion(3)) # 393216
print(3 << 1) # 6
print(2 << 1) # 4
print(1 << 1) # 2
以我头递归函数的输出应为:12 (6 + 4 + 2) 为什么这不是这样的?我必须说“393216”比我预期的数字“12”稍大。递归函数(比特移位)
我的期望:
--> return 1<<1==2 for 1
--> return 2<<1==4 for 2
--> return 3<<1==6 for 3
0 --> return 0 for 0
所有共同= 12
快速修正,bitshifts具有较低的优先级,而不是更强。 –
@Shiva哎呀,错字是,固定谢谢。 – miradulo