不知道錯哪了
def move(n, a, b, c):
? ? def fact(n):
? ? ? ? t1=='a-->b'
? ? ? ? t2=='b-->c'
? ? ? ? t3=='a-->c'
? ? ? ??
? ? ? ? if n==1:
? ? ? ? ? ? print t1
? ? ? ? elif n>1:
? ? ? ? ? ? print t1
? ? ? ? ? ? print (n-1)*t2
? ? ? ? ? ? print (n-1)*t3
move(4, 'A', 'B', 'C')
2020-03-07
您理解錯啦,a,b,c是形參,不是實參,我參考了知乎上的一位答主對于漢諾塔遞歸的解釋https://www.zhihu.com/question/24385418
附上我的代碼,供您參考
def move(n, a, b, c):
? ? if n <= 0 :
? ? ? ? return "the number must larger than zero !"
? ? elif n == 1 :
? ? ? ? print a, '-->',? c
? ? ? ? return?
? ? else :
? ? ? ? move(n-1, a, c, b)
? ? ? ? print a, '-->', c
? ? ? ? move(n-1, b, a, c)
move(4, 'A', 'B', 'C')
2020-02-11
def move(n,a,b,c):
if n>1:
return (“a—>b”,“b—>c”,“a—>c”)
elif n>0:
return (“a—>c”)
else:
return (“error ”)
print (move (4,“A”,“B”,“C”))
2020-01-22
定義的第二個函數沒有意義,刪掉;t1t2t3應該是賦值,要用單等號。改完再調整一下空格就可以有結果了,但是這個結果和思路都是錯的。這道題的思路不是這么簡單的一個一個挪,建議去查一下漢諾塔問題定義,有順序要求的。參考別的大佬的代碼,應該可以看懂
2020-01-09
這段代碼真是天馬行空,看得人眼花繚亂,頭暈目眩