一开始我想要解决这个问题是在一天前,因为之前几天进行了拓展训练,完了这个游戏。
首先准备解决的时候,我想通过计算机自己选择进行输出,但是没有行得通;
然后,我想通过归纳法自己找出移动规律,教会计算机移动规则,但是发现其实没有什么规律;
最后,在上一步的基础上,发现其实这个规律就是递归函数。然后估计半个小时就解决了问题。总结起来,还是算法最为重要吧,就如同做事一样,其实战略策略是最为重要的。
代码如下:
def function(n,startpoint):
if n==1 and startpoint=='a':
print('1 a->b\n1 b->c\n')
elif n==1 and startpoint=='c':
print('1 c->b\n1 b->a\n')
else:
function(n-1,'a')
print('%d a->b'%n)
function(n-1,'c')
print('%d b->c'%n)
function(n-1,'a')
n=int(input('please input how many disk you want to move:'))
startpoint=input("please input start point.if from a->b->c,please input 'a',else input 'c':")
function(n,startpoint)