иван савин
Ученик
(42),
на голосовании
1 год назад
public class MainClass { public static void main(String[] args) { int nDisks = 3; doTowers(nDisks, 'A', 'B', 'C'); } public static void doTowers(int topN, char from, char inter, char to) { if (topN == 1) { System.out.println("Диск 1 от " + from + " до " + to); } else { doTowers(topN - 1, from, to, inter); System.out.println("Диск " + topN + " от " + from + " до " + to); doTowers(topN - 1, inter, from, to); } } } Как работает этот код? Никак не могу понять что за что здесь отвечает, Java. Это всем известные ханойские башни.
Дополнен 1 год назад
Диск 1 от A до C Диск 2 от A до B Диск 1 от C до B Диск 3 от A до C Диск 1 от B до A Диск 2 от B до C Диск 1 от A до C
public static void main(String[] args) {
int nDisks = 3;
doTowers(nDisks, 'A', 'B', 'C');
}
public static void doTowers(int topN, char from, char inter, char to) {
if (topN == 1) {
System.out.println("Диск 1 от " + from + " до " + to);
} else {
doTowers(topN - 1, from, to, inter);
System.out.println("Диск " + topN + " от " + from + " до " + to);
doTowers(topN - 1, inter, from, to);
}
}
}
Как работает этот код? Никак не могу понять что за что здесь отвечает, Java. Это всем известные ханойские башни.