2 回答

TA贡献1786条经验 获得超13个赞
("[g]et, [p]ut... 字符串被打印两次,因为在您输入并按 Enter 后,for 循环会为您输入的输入运行一次,再为“enter”运行一次输入后按下按钮
根据你想要的,在 else if (choice.equals("p")) this elsed if 块中减少 i
else if (choice.equals("p")){
//your code
i--;
}

TA贡献2016条经验 获得超9个赞
我建议使用Recursion,“公式”要容易得多:这是代码:
public class TowerOf_Hanoi {
public static void main(String [] args){
java.util.Scanner input=new java.util.Scanner(System.in);
System.out.print("Enter Number of Disks: ");
int numDisk=input.nextInt();
System.out.println("Moves are: ");
steps(numDisk,'A','B','C');
}
public static void steps(int n, char fromTower, char toTower, char auxTower){
//base case for Recursion
if(n==1) //if n=1 it will stop
System.out.println("Move disk "+n+" from "+fromTower+" to "+toTower);
else{
steps(n-1,fromTower,auxTower,toTower); //recursion
System.out.println("Move disk "+n+" from "+fromTower+" to "+toTower);
steps(n-1,auxTower,toTower,fromTower);
}
}
}
添加回答
举报