漢諾塔移動

2021-08-10 10:10:05 字數 1161 閱讀 8967

漢諾塔的移動可以用遞迴函式非常簡單地實現。

請編寫move(n, a, b, c)函式,它接收引數n,表示3個柱子a、b、c中第1個柱子a的盤子數量,然後列印出把所有盤子從a借助b移動到c的方法,例如:

# 期待輸出:

# a --> c

# a --> b

# c --> b

# a --> c

# b --> a

# b --> c

# a --> c

move(3, 'a', 'b', 'c')

乙個環:

step1.將最大的環從a移動到c

a -> c

兩個環:

step1.把除了最大的環之外的環,從a移動到b

a -> b

step2.將最大的環從a移動到c

a -> c

step3.把除了最大的環之外的環,從b移動到c

b -> c

三個環:

step1.把除了最大的環之外的環,從a移動到b

a -> c

a -> b

c -> b

step2.將最大的環從a移動到c

a -> c

step3.把除了最大的環之外的環,從b移動到c

b -> a

b -> c

a -> c

python採用遞迴函式實現

move(3,『a』,『b』,『c』) 結果如下

漢諾塔移動步驟

漢諾塔 漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。不追求漢...

漢諾塔的移動函式

漢諾塔 的移動 用python編寫 move n,a,b,c 函式,接收引數n,n表示3個柱子a b c中第1個柱子a的盤子數量,列印出把所有盤子從a借助b移動到c的方法 期待輸出 a c a b c b a c b a b c a c move 3,a b c 把不是最下面的盤子都經過c移到b 把...

漢諾塔移動次數(2064)

漢諾塔一般步驟 將 n 1 個圓盤移動到c柱 第 n 個圓盤移動到c柱 前 n 1 個圓盤再移動到c柱 由步驟可得遞推式 step n step n 1 1 step n 1 2 step n 1 1 step 1 0 即 step n 2 n 1。本題要求每步只能移到b柱或從b柱移出。故 首先將n...