下列用Python 所寫的遞迴程式,會產生一系列的指令,用以把下圖在A
柱子上的5 個圓盤全部移到C 柱子上,且移動過程中能確保不會有圓盤
疊在更小的圓盤上。
請說明MoveDisk 函式總共會被呼叫幾次?(5 分)
請說明總共會輸出幾個移動圓盤的指令?(10 分)
請說明第三大的圓盤(也是第三小的圓盤)總共會移動幾次?(10 分)
def MoveDisk (n , from_pole, to_pole, aux_pole):
if n == 1:
print ("Move top disk from pole ",from_pole,"to pole",to_pole)
return
MoveDisk (n-1, from_pole, aux_pole, to_pole)
Print ("Move top disk from pole ",from_pole,"to pole",to_pole)
MoveDisk (n-1, aux_pole, to_pole, from_pole)
MoveDisk(5, 'A', 'C', 'B')