Java Recursion Printing Asterisks из одного вызова методаJAVA

Программисты JAVA общаются здесь
Anonymous
Java Recursion Printing Asterisks из одного вызова метода

Сообщение Anonymous »

У меня есть задание, представляющее рекурсию в 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

Вернуться в «JAVA»