有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动,设移动次数为H(n)。求H[n],当然,这个问题还有非递归实现,有时间再去探究.
def move(n, a, b, c):
if(n==1):
print(a,' --> ',c);
return
else:
move(n-1,a,c,b)
print(a,' --> ',c);
move(n-1,b,a,c)
move(10,'A','B','C')