【递归】汉诺塔问题
程序员文章站
2022-04-13 12:20:10
...
认为一个十分奇妙的算法 ----思维没太明白
代码如下
package 递归;
/**
* 思维不是很懂---但仍然觉得十分奇妙
* 看CSDN的博客图片。
* @author lenovo
*
*/
public class _09_汉塔诺问题 {
/**
*
* @param n:初始从小到大的盘子,n是最大的盘子
* @param from:原始柱子
* @param to:目标柱子
* @param help:辅助柱子
*/
public static void f(int n, String from, String to, String help) {
if(n == 1) {
System.out.println("move: "+n+" from "+from+" to "+to);
return;
}
//具体缘由看图。
f(n-1, from, help, to);
System.out.println("move: "+n+" from "+from+" to "+to);
f(n-1, help, to, from);
}
public static void main(String[] args) {
f(3, "A", "B", "C");
}
}
运行结果
上一篇: 递归——汉诺塔问题