题目
- 汉诺塔问题是由很多放置在三个塔座上的盘子组成的一个古老的难题。所有盘子的直径是不同的,并且盘子中央都有一个洞使得它们刚好可以放在塔座上。所有的盘子刚开始都放置在A 塔座上。这个难题的目标是将所有的盘子都从塔座A移动到塔座C上,每次只可以移动一个盘子,并且任何一个盘子都不可以放置在比自己小的盘子之上
解法
/**
* 汉诺塔问题
*
* @param count 总数
* @param from 起始塔
* @param end 目标塔
* @param temp 中介塔
*/
public static void hanoiQuestion(int count, String from, String end, String temp) {
if (count == 1) {
System.out.println("index: " + count + " form:" + from + " to: " + end);
} else {
hanoiQuestion(count - 1, from, end, temp);
System.out.println("index: " + count + " form:" + from + " to: " + end);
hanoiQuestion(count - 1, temp, end, from);
}
}