实验一(梵塔问题)

实验一(梵塔问题)

思想:

n为圆盘数,a代表初始位圆柱,b代表过渡位圆柱,c代表目标位圆柱。

将初始位的n-1个圆盘移动到过渡位,此时初始位为a,

上一级函数的过渡位b即为本级的目标位,

上级的目标位c为本级的过渡位

加入时间模块,计算挪盘子花费时间。

代码:

import time



def move(n,a,b,c):  

       if n==1:

              print(a,'-->',c)

       else:

              move(n-1,a,c,b)  

              print(a,'-->',c)

              move(n-1,b,a,c)

n=input('几个盘子呀?\n')

start = time.time()

move(int(n),'A','B','C')

end = time.time()



print('你刚才输入的盘子数目:'+str(n))

print ('执行时间:'+str(end-start)+'秒')

 

测试:

4盘:

结果截图:

6盘:

结果截图:

10盘:

结果截图:

14盘:

结果截图:

34盘:

结果截图:

太久啦。就不整啦。

 

 

 

发布了470 篇原创文章 · 获赞 1006 · 访问量 94万+

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/100983783
今日推荐