汉诺塔
Posted me-we
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汉诺塔相关的知识,希望对你有一定的参考价值。
/**
* Hanoi
*/
public class Hanoi {
public static void main(String[] args) {
hanoi(3, 'A', 'B', 'C');
}
/**
* 递归汉诺塔
*
* @param n 盘子数
* @param start 起始柱子
* @param transfer 中转柱子
* @param target 目标柱子
*/
public static void hanoi(int n, char start, char transfer, char target) {
// 递归出口,只有一个盘子,直接搬到目标柱子
if (n == 1) {
System.out.println(start + " --> " + target);
} else {
// 起始柱子借助目标柱子,将盘子都移动到中转柱子(除了最大的盘子)
hanoi(n - 1, start, target, transfer);
System.out.println(start + " --> " + target);
// 中转柱子借助起始柱子,将盘子都移动到目标柱子
hanoi(n - 1, transfer, start, target);
}
}
}
以上是关于汉诺塔的主要内容,如果未能解决你的问题,请参考以下文章