У меня есть задание по знакомству с рекурсией в Java, и я столкнулся с препятствием. Для присваивания требуется метод рекурсии для вывода количества строк с количеством звездочек в зависимости от переданного ему целочисленного значения. Например, если в качестве переменной n передано число 4, в выходных данных будет первая строка с одной звездочкой, следующая строка — 2 звездочки, следующие 3 звездочки, следующие 4, затем 4, 3, 2 и 1, идущие вниз.
Мне удалось завершить первую половину вывода (хотя я не уверен, что он оптимален), но понятия не имею, как заставить метод вернуться обратно. Все это нужно сделать за один вызов метода с передачей переменной (n) методу.
Вот метод, который у меня есть:
Код: Выделить всё
public static void myMethod(int n)
{
if (n 0){
return myMethod((n - 1), (currentStr + displayStr + currentStr));
}
else {
return displayStr;
}
} // end recursion method myMethod
Его версия печатается из main, используя следующую строку кода:
Я попробовал его версию, и она печатает треугольник на своей стороне, но самая большая линия печатается только один раз, а не два. Я провел весь день, пытаясь изменить его, добавив дублирующую строку посередине, и начинаю думать, что это невозможно.
Любая помощь будет ОЧЕНЬ признательна . У меня с этим полный тупик.
Подробнее здесь:
https://stackoverflow.com/questions/161 ... ethod-call