Я читаю книгу под названием «Think Java: как думать, как компьютерный ученый», и недавно я использовал рекурсивные методы.Как изменилась рекурсивная функция, называемая изменением результата?
public static void countdown(int n)
if (n == 0) {
System.out.println("Blastoff!");
} else {
System.out.println(n);
countdown(n - 1);
}
}
Это будет нормальный рекурсивный метод, используемый для отсчета времени до 0, и я понимаю, что происходит, но если вы делаете рекурсивный вызов до System.out.println как этот
if (n == 0) {
System.out.println("Blastoff!");
} else {
countup(n - 1);
System.out.println(n);
}
он подсчитывает способ oppisote, поэтому, если бы я дал аргумент 3 для обоих этих утверждений о состоянии, то 1-й отправляется «3, 2, 1, Blastoff!». но второй 1 идет «Blastoff, 1, 2, 3» .... Я не понимаю, как это работает, может кто-то попытается объяснить, что происходит в этом коде, что заставляет его рассчитывать обратным образом?
Привет и добро пожаловать в сеть обмена стеками. Сайт, на котором вы размещаете (безопасность), касается защиты данных и сетей от злоумышленников, - так что ваш вопрос довольно не по теме. Я проголосовал, чтобы переместить его в Stack Overflow, где он получит лучший ответ. –
Я проголосовал также. user122144, почему вы поставили вопрос здесь? – unforgettableid