软件测试面试题:汉诺塔问题(一般不会考)

汉诺塔问题(一般不会考)

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘

当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。

当A塔上有两个盘子是,先将A塔上的1 盘子(编 从上到下)移动到B塔上,再将A塔上的2 盘子移动的C塔上,最后将B塔上的小盘子移动到C塔上。

当A塔上有3个盘子时,先将A塔上编 1至2的盘子(共2个)移动到B塔上(需借助C塔),然后将A塔上的3 最大的盘子移动到C塔,最后将B塔上的两个盘子借助A塔移动到C塔上。

当A塔上有n个盘子是,先将A塔上编 1至n-1的盘子(共n-1个)移动到B塔上(借助C塔),然后将A塔上最大的n 盘子移动到C塔上,最后将B塔上的n-1个盘子借助A塔移动到C塔上。

综上所述,除了只有一个盘子时不需要借助其他塔外,其余情况均一样(只是事件的复杂程度不一样)。

def hanoi(n, a, b, c):
”’汉诺塔问题”’
if n == 1:
print(a, ‘–‘, c)
else:
hanoi(n – 1, a, c, b)
print(a, ‘–‘, c)
hanoi(n – 1, b, a, c)
hanoi(5, ‘A’, ‘B’, ‘C’)






个人简介

我是一名测试兼开发工程师,目前25K,目前做的是无人驾驶,欢迎和大家一起交流测试技术,
起高薪就业,我们还有一起打妖怪的群哦,还有面试题小程序哦

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树首页概览32931 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月19日
下一篇 2022年3月19日

相关推荐