
public class Hanoi
{
private static int i=0;

public static void main(String[] args)
{
System.out.println("移动的步骤如下:");
hanoi(5,'A','B','C');
System.out.println("\n移动的次数为:"+i);
}

public static void move(char x,char y)
{
System.out.print(x+"--->"+y+" ");
i++;
if(i%5==0)System.out.println();
}

public static void hanoi(int n,char one,char two,char three)
{
if(n==1) move(one,three);

else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
}
移动的步骤如下:
A--->C A--->B C--->B A--->C B--->A
B--->C A--->C A--->B C--->B C--->A
B--->A C--->B A--->C A--->B C--->B
A--->C B--->A B--->C A--->C B--->A
C--->B C--->A B--->A B--->C A--->C
A--->B C--->B A--->C B--->A B--->C
A--->C
移动的次数为:31
posted on 2009-11-23 23:30
期待明天 阅读(328)
评论(0) 编辑 收藏 所属分类:
Java