一.非視覺化**
def printf(a,c): #盤子移動的輸出格式
print("{} --> {}".format(a,c))
def move(n,a,b,c):
if n == 1:
printf(a,c) #將最後1個盤子從a座移到c座
else:
move(n-1,a,c,b) #將n個盤子從a座借助b座移到c座
printf(a,c) #將最後1個盤子從a座移到c座
move(n-1,b,a,c) #將n個盤子從b座借助a座移到c座
n = int(input("請輸入漢諾塔層數:"))
move(n,'a','b','c')
編譯結果:
二.視覺化**
from turtle import *
class stack:
def __init__(self):
self.items =
def isempty(self):
return len(self.items) == 0
編譯結果:
python 漢諾塔 Python漢諾塔
import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...
漢諾塔遊戲
漢諾塔 於印度傳說的乙個故事,上帝創造世界時作了三根金剛石柱子,在一根柱子上從下往上按大小順序摞著64片 圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一回只能移動乙個圓盤。要想玩轉漢諾塔,需要先理解遞迴。如果乙個問題可以不斷地...
漢諾塔遊戲
題目描述 在a b c三根柱子上,有n個不同大小的圓盤 設半徑分別為1 n 一開始他們都疊在a上,你的目標是在最少的合法移動步數內將所有盤子從a塔移動到c塔。遊戲中的每一步規則如下 1 每一步只允許移動乙個盤子 從一根柱子最上方到另乙個柱子的最上方 2 移動的過程中,你必須保證大的盤子不能在小的盤子...