剛開始很懵逼,對於其中的邏輯理解不了,不知道需要做什麼,在了解了,具體漢諾塔問題以後結合解釋終於搞明白了,
#!/usr/bin/python
# -*- coding: utf-8 -*-
def move(x,y,z,n):
if n==1:
print(x,'-->',z)
else:
move(x,z,y,n-1)
print(x,'-->',z)
move(y,x,z,n-1)
n=input('please enter your n:')
m=int(n)
move('a','b','c',m)
詢問大神的結果:
參考教程:
漢諾塔問題的遞迴解法
漢諾塔問題的遞迴解法 實現程式 include using namespace std void move int n,char i,char j void hanoi int n,char x,char y,char z int main 執行結果 以下是3層漢諾塔的解法 把1號從x移動到z 把2...
漢諾塔問題的遞迴演算法
漢諾塔是根據乙個傳說形成的乙個問題。漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天 創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門 把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之...
求解漢諾塔的遞迴問題
先上 void towersofhanoi int n,int x,int y,int z 這裡也分基礎部分和遞迴部分,但是這裡的基礎部分並不明顯,這裡的基礎部分就是當x上的碟數為1時,if裡面的第一和第三句 直接退出,只有第二句 會執行。這裡的第二句 就是基礎部分,然後老規矩迭代部分我們只需要考慮...