У меня есть задание, представляющее рекурсию в Java, и я сталкиваюсь с препятствием. Назначение требует метода рекурсии для вывода ряда строк ряда звездочек в зависимости от целочисленного значения, передаваемого ему. Например, если 4 передается как переменная n, вывод будет иметь первую строку одного звездочка, следующая строка 2 звездочки 2, следующие 3 звездочки, следующие 4, затем 4, 3, 2 и 1, идут вниз. Это все должно быть сделано в одном вызове метода с переменной (n), переданной методу. public static void myMethod(int n)
{
if (n
Это вызывается из Main с этим: < /p>
myMethod(n);
< /code>
Итак, что у меня есть для цикла, который будет печатать звездочку в одну и ту же строчку. После петли он переходит к следующей строке и цикла, изменяя n. Но я понятия не имею, как заставить его изменить. Мой инструктор показал мне образец версии прохождения 2 переменных (n) и нулевой строки. < /P>
public static String myMethod(int n, String displayStr) {
String currentStr = "";
for (int i = 0; i < n; i++)
currentStr += "*";
currentStr += "\n";
if (displayStr == null){
return myMethod((n - 1), currentStr);
} // end base case
else if (n > 0){
return myMethod((n - 1), (currentStr + displayStr + currentStr));
}
else {
return displayStr;
}
} // end recursion method myMethod
< /code>
Его версия печатает из Main, используя следующую строку кода: < /p>
System.out.println(myMethod(n, null));
< /code>
Я попробовал его версию, и он печатает треугольник на стороне, но самая большая линия печатает только один раз вместо дважды. Я провел весь день, пытаясь изменить его, чтобы добавить в дубликату посередине и начинаю думать, что это невозможно. Я полностью остановлюсь с этим.
Подробнее здесь: https://stackoverflow.com/questions/161 ... ethod-call