学习 · 2005年12月29日 0

另外一钟河内塔

感觉更加简洁:)
/**
* 汉诺塔事例
* @author:蒋彪
* @version 1.00 05/10/20
*/
import java.io.*;
public class Towers
{
static int nDisks;
public static void main(String[] args) throws IOException
{
System.out.println(“请输入盘子的个数:”);
nDisks=Integer.parseInt(In());
doTowers(nDisks,’A’,’B’,’C’);
}
public static void doTowers(int topN,char A,char B,char C)
{
if(topN==1)
System.out.println(“Disk 1 form “+A+” to “+C);
else
{
doTowers(topN-1,A,C,B);//把A上的N-1个盘子放到B上
System.out.println(“Disk “+topN+” from “+A+” to “+C);
doTowers(topN-1,B,A,C);//把B撒谎那个的N-1个盘子放到c上
}
}
public static String In() throws IOException
{
String str;
BufferedReader Input=new BufferedReader(new InputStreamReader(System.in));
//数据流进行输入
str=Input.readLine();//读取行。
return str;
}
}