Привет всем, я начал делать рекурсию, и я должен сказать, что это меня сбивает с толку. В настоящее время я работаю на башни Ханоя:Рекурсивная функция, возвращающая строку ходов
public static String hanoi(int n, int startPole, int endPole) {
String ret = new String();
if (n == 0){
return "";
}
int intermediatePole = 6 - startPole - endPole;
String add3 = hanoi(n-1, startPole, intermediatePole);
String add = startPole + "->" + endPole + "\n";
String add2 = hanoi(n-1, intermediatePole,endPole);
return add + add3 + add2;
}
Так довольно много, что разбиваешь мой мозг - Кто один возвращает строку ходов таким образом, что вы получаете от вызова hanoi(2, 1, 3)
, вы получите выход как это так, мое возвращает только одну петлю рекурсивного вызова
1 - 3
1 - 2
3 - 2
1 - 3
2 - 1
2 - 3
1 - 3
Вы пытались его распечатать? Когда я запускаю ваш код, я получаю '' '1- 1- 3 1-> 2 2-> 3''', который выглядит нормально. – NeplatnyUdaj