汉诺塔问题
问题描述
给定三个柱子:A,B,C
规定有n个盘子,初始时盘子全部在A柱,借助B柱将所有盘子移动到C柱即可完成,每次只能移动一个盘子,而且必须保证小盘子在大盘子上。
1、先拿三个盘子举例:
(用画图工具画的,有点丑别介意哈!☺)
分以下几步进行:
1)把绿色和粉色两个盘子借助C柱移动到B柱
2)把蓝色盘子移动到C柱
3)把绿色和粉色借助A分别移动到C柱
因此,考虑到步骤都是重复的,我们可以借助递归来解决此问题
定义一个方法,Hanoi(int n,char A,char B,char C)(n为盘子的数量)
(ps:ok,接下来看图解,目前小雪还没找到合适的工具作图,只能用画图工具来画了,残缺的柱子大家可以忽略不计,重要的是学会思想哈!雪儿尽力画了)
详细过程: