当输入3时
这个代码中输入3个盘子时 ,程序的结果是A->C A->B C->B A->C B->A B->C A->C ,而正确的结果不是应该是A->B A->C B->A B->C A->C 吗? 还是说程序运行的结果也是另一种方法?拜托同学们帮我看看 谢谢
这个代码中输入3个盘子时 ,程序的结果是A->C A->B C->B A->C B->A B->C A->C ,而正确的结果不是应该是A->B A->C B->A B->C A->C 吗? 还是说程序运行的结果也是另一种方法?拜托同学们帮我看看 谢谢
2018-06-10
你的结果不对, 第四步的时候,B上已经没盘子了。
这有个游戏,你可以试一下。
附带我的代码注释,(我附加计算了不同盘子需要移动的步数):
# _*_ coding:utf-8 _*_
def move(n, a, b, c):
#如果a只有一个圆盘,可以直接移动到c
if n ==1:
print a, '-->', c
return 1
num=move(n-1, a, c, b) # (N-1) 个圆盘移动到 b
num=num+1
print a, '-->', c #将a的最后一个圆盘移动到c
num2=move(n-1, b, a, c) #再将b的(N-1)个圆盘移动到c
return num+num2
print move(4, 'A', 'B', 'C')
举报