汉诺塔
/**
* 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);
}
}
}
少一些功利主义的追求,多一些不为什么的坚持