作为学校项目的一部分,我的任务是在Java中制作河内的循环塔,并在控制台上打印光盘的移动,并决定我将光盘从A顺时针移动到B,移动为A-> B-> C-> A,其配置如下:
A
C B
我决定递归地执行此操作,但是在8张光盘之后,光盘的移动停止了,并且跳过了光盘。 这是我在程序中使用的两种方法,我首先调用“顺时针”。
private static void AntiClockwise(int discs,char from,char to,char aux) {
if (discs==0) {
System.out.print("");
}
else {
AntiClockwise(discs-1,from,to,aux);
System.out.println("Disc size " + discs + " moves from " + from + " to " + aux);
Clockwise(discs-1,aux);
System.out.println("Disc size " + discs + " moves from " + aux + " to " + to);
AntiClockwise(discs-1,aux);
}
}
private static void Clockwise(int discs,char aux,char to) {
if (discs==0) {
System.out.print("");
}
else {
AntiClockwise(discs-1,aux);
System.out.println("Disc size " + discs + " moves from " + from + " to " + aux);
AntiClockwise(discs-1,aux,from);
}
}
我不知道如何解决这个问题,有什么建议吗?