public class HanoiY
{
void Move(char chSour, char chDest)
{
Console.WriteLine("Move the top plate of " + chSour + "-->" + chDest);
} void Hanoi(int n, char chA, char chB, char chC)
{
if (n == 1)
Move(chA, chC);
else
{
Hanoi(n - 1, chA, chC, chB);
this.Move(chA, chC);
Hanoi(n - 1, chB, chA, chC);
}
} public static void Main(String[] args)
{
int n = int.Parse(Console.ReadLine());
HanoiY han = new HanoiY();
han.Hanoi(n, 'A', 'B', 'C');
Console.ReadLine();
}
}
请讲解一下这个汉诺塔程序,关键是递归部分
{
void Move(char chSour, char chDest)
{
Console.WriteLine("Move the top plate of " + chSour + "-->" + chDest);
} void Hanoi(int n, char chA, char chB, char chC)
{
if (n == 1)
Move(chA, chC);
else
{
Hanoi(n - 1, chA, chC, chB);
this.Move(chA, chC);
Hanoi(n - 1, chB, chA, chC);
}
} public static void Main(String[] args)
{
int n = int.Parse(Console.ReadLine());
HanoiY han = new HanoiY();
han.Hanoi(n, 'A', 'B', 'C');
Console.ReadLine();
}
}
请讲解一下这个汉诺塔程序,关键是递归部分
解决方案 »
- 一个线程问题求解
- 关于for..有个地方看不懂 请教。。
- weblogic10获取数据库连接池问题
- java程序出错!!!实现键盘方向键控制字符串移动,却移动不了,帮我看看代码那里错,谢谢!!
- Map<String,Object> map = new HashMap<String,Object>();
- 如何非阻塞读取序列化对象
- 谁能帮我介绍几个关于java 或vc/c++的网站或论坛
- 假如想把c盘根目录的java.class做成java.jar应该敲什么命令啊?
- 我要处理用户输入的一个字符窜。怎样写用户输入这段代码?
- 怎样把从文件中读出的内容在JTextArea里面实现换行显示
- 求双线性内插算法, 三次卷积法.
- 请问一下Java里面的setString()方法和getString()方法各有什么用``和两者的区别?
将A柱上的n-1个环从A柱通过C柱移到B柱this.Move(chA, chC);
将A柱上剩下的最后一个环从A柱直接移到C柱Hanoi(n - 1, chB, chA, chC);
将B柱上的n-1个环从B柱通过A柱移到C柱over