皆さん、今晩は、
私のクラスが再帰についてやっている宿題について簡単な質問があります。アイデアは、このハノイの塔プログラムがあり、5 から 25 の数字と、そのサイズの塔を解くのに何手かかるかを表示する表を作成するメインを作成する必要があるということです。たとえば、
5 ---- 31手
6 ---- 63手
等...
TowersOfHanoi クラスは各動きを出力するように設定されているため、これを行うのに少し問題があります。それを取り除くべきではないと思いますが、よくわかりません。
ここに TowersOfHanoi クラスがあります
public class TowersOfHanoi {
private int totalDisks;
private int count;
public TowersOfHanoi(int disks) {
totalDisks = disks;
count = 0;
}
public void solve() {
moveTower (totalDisks,1,3,2);
}
private void moveTower(int numDisks, int start, int end, int temp) {
if (numDisks ==1) {
moveOneDisk(start,end);
}
else {
moveTower (numDisks-1, start, temp, end);
moveOneDisk (start, end);
moveTower (numDisks-1, temp, end, start);
}
}
private void moveOneDisk(int start, int end) {
count = count+1;
System.out.println("Move one disk from "+start+" to "+end+" - Move "+count);
}
}
ここで、すべてのタワーのすべての動きを出力せずにそのテーブルを作成するメインを作成する必要がありますが、その方法がよくわかりません。どんな助けでも大歓迎です