作业答案,卡在 参数a和位置a的混淆,用x区分。参照了百度过来的算法才完全看明白
Topic sourcedef hanoi(n,x,y,z): if n==1: print(x,'-->',z) else: hanoi(n-1,x,z,y)#将前n-1个盘子从x移动到y上 hanoi(1,x,y,z)#将最底下的最后一个盘子从x移动到z上 hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上 n=int(input('请输入汉诺塔的层数:')) hanoi(n,'x','y','z')
- 1
报三春晖
def hanoi(n,x='a',y='b',z='c'): if n==1: print(x,'-->',z) else: hanoi(n-1,'a','c','b')#将前n-1个盘子从x移动到y上 hanoi(1,'a','b','c')#将最底下的最后一个盘子从x移动到z上 hanoi(n-1,'b','a','c')#将y上的n-1个盘子移动到z上 n=int(input('请输入汉诺塔的层数:')) hanoi(n)