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