здесь требование проблемыстранная логика для печати чисел в обратном направлении
написать метод writeNums, который принимает параметр п целого числа и печатает первые п целых числа, начиная с 1 в последовательном порядке, разделенные запятыми. Например, следующие вызовы производят следующий вывод:
Вывод вызова writeNums (5); 1, 2, 3, 4, 5
И вот решение (частично это моя работа и частично, я искал в Интернете). Я не понимаю, почему эта строка writeNums (n - 1); распечатывать номера назад? Это немного сбивает с толку, потому что я ожидал, чтобы получить это напечатано: 5,4,3,2,1
public class WriteNums
{
public static void main(String args[])
{
WriteNums wn=new WriteNums();
wn.writeNums(5);
}
public static void writeNums(int n) {
if (n == 1)
System.out.print("1");
else {
System.out.println(n);
writeNums(n - 1);
System.out.print(", " + n);
}
}
}
Посмотрите в рекурсии, а также стек рекурсивных вызовов – Coder
Что отладчик покажет вам, когда вы шагаете через код? –
, если число не равно 1, оно снова вызывает writeNum (n-1), но тогда почему system.out печатает в обратном порядке? –