Почему n уменьшается в моих рекурсивных вызовах? [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему n уменьшается в моих рекурсивных вызовах? [закрыто]

Сообщение Anonymous »

Сейчас я изучаю Java, рекурсию и возврат. В этой задаче обучения я не знаю, почему мой n уменьшается каждый раз, когда он вызывается обратно. Даже если я создам новую переменную, содержащую n, она уменьшится. Может кто-нибудь объяснить, почему это происходит и как я могу это исправить?
Цель кода - напечатать симметричную последовательность чисел n с убывающими целыми числами, заканчивающимися на 1, за которыми следуют целые числа по возрастанию, начинающиеся с 1.
Если я передаю writeSentence(4), он должен вернуть: "2 1 1 2", или если я передаю ему writeSequence(7), он должен напечатать: "4 3 2 1 2 3 4 ".
public void writeSequence(int n) {
if (n < 1) {
throw new IllegalArgumentException();
}
else if (n > 1) {
System.out.print(n + " ");
writeSequence(n - 1);
System.out.print(n + " ");
}
else if (n % 2 == 0) {
System.out.print(n + " " + n + " ");
}
else if (n % 2 != 0) {
System.out.print(n + " ");
}
}


Подробнее здесь: https://stackoverflow.com/questions/799 ... sive-calls
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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