Как перевернуть последовательность чисел с рекурсией в java - PullRequest
0 голосов
/ 07 января 2020

Я застрял на этом куске кода, назначение простое: «с учетом числа n или значения выведите на консоли последовательность от n до 1 и от 1 до n (повторяя число 1, так что должно быть похожим на это '5432112345').

Рекурсия сама по себе не является проблемой, настоящей проблемой является вторая часть, потому что я не могу использовать любую другую переменную только n. Я не могу сохранить начальное значение нигде, так как каждый раз, когда я вызываю метод, он актуализируется.

Вот код на данный момент:

public int mirrorRecursive(Integer value){
       if (value < 1){        //in case the given value is less than 1 it won't print anything
            return value;
        }
        if(value == 1){        //in case the value is 1, it will be printed and stop the calling
            System.out.print(value);
        }else{                 //in case the value is not 1 or less, it will print and call again the method
            System.out.print(value);
            mirrorRecursive(--value);
        }

        return value;
}

1 Ответ

4 голосов
/ 07 января 2020

Я не уверен, что использовать значение, возвращаемое методом, но для того, чтобы распечатать желаемый результат, все, что вам нужно, это:

public static int mirrorRecursive(Integer value){
  System.out.print(value);
  if (value > 1) {
    mirrorRecursive(value - 1);
  }
  System.out.print(value);

  return value;
}

т.е. напечатать текущее число до и после рекурсивный вызов и сделать рекурсивный вызов, пока value> 1.

...