java编写对n个盘子移动的Hano塔递归程序.
答案:1 悬赏:40 手机版
解决时间 2021-03-09 07:16
- 提问者网友:人生佛魔见
- 2021-03-08 11:14
著名的hanoi塔问题是这样的有个直径不同的圆盘套在一个针源上,现要将这些盘子移到另一根针目标上,移动时,必须保证小盘子在大盘子上方,且一次移动一个盘子。为了使得移动能够进行,可借助一根辅助针。
最佳答案
- 五星知识达人网友:风格不统一
- 2021-03-08 12:45
public class Hanoi {
public void hanoi(int n,char origin,char assist,char destination) {
if (n == 1) {
move(origin,destination);
} else {
hanoi(n - 1,origin,destination,assist);
move(origin,destination);
hanoi(n - 1,assist,origin,destination);
}
}
// Print the route of the movement
private void move(char origin,char destination) {
System.out.println("Direction:" + origin + "--->" + destination);
}
public static void main(String[] args) {
Hanoi hanoi = new Hanoi();
hanoi.hanoi(3,'A','B','C');
}
}
public void hanoi(int n,char origin,char assist,char destination) {
if (n == 1) {
move(origin,destination);
} else {
hanoi(n - 1,origin,destination,assist);
move(origin,destination);
hanoi(n - 1,assist,origin,destination);
}
}
// Print the route of the movement
private void move(char origin,char destination) {
System.out.println("Direction:" + origin + "--->" + destination);
}
public static void main(String[] args) {
Hanoi hanoi = new Hanoi();
hanoi.hanoi(3,'A','B','C');
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯