汉诺塔(hanoi):
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
有三根柱子,其中一根从下往上按照大小顺序放着若干个圆盘,要求将这些圆盘移动到另一根柱子上,并且小盘上不能放在大盘之上,每次只能移动一个圆盘。
思路:
假设三个柱子分别是source(起始),tmp(中间),dest(目的)
通过递归实现,分三步:
- 将n-1个盘子借助dest从source移动到tmp
- 将第n个盘子从source移动到dest
- 将tmp上的n-1个盘子借助source移动到dest
代码实现:
#通过递归实现,分三步:
#1、将n-1个盘子借助dest从source移动到tmp
#2、将第n个盘子从source移动到dest
#3、将tmp上的n-1个盘子借助source移动到dest
#定义一个计数器,统计总共移动的步数
count =