Лучший отвечающий
Помогите решить задачу про рекурсию С#

Вопрос
-
Условие задачи:
Вводится ряд целых чисел, заканчивающийся нулём.
Вывести эти числа в столбик в обратном порядке, включая 0.
Использовать рекурсию.
Начальные данные: много чисел, по одному на строчке, последнее число равно нулю.
Вывод результата: те же самые числа в столбик, но в обратном порядке.Начальные данные: 10 20 30 0 Вывод результата: 0 30 20 10.
Нельзя использовать: array for while goto
12 ноября 2014 г. 16:12
Ответы
-
static void Main(string[] args) { InputNumber(); Console.ReadLine(); } private static void InputNumber() { var line = Console.ReadLine().Trim(); var number = int.Parse(line); if (number != 0) { InputNumber(); Console.WriteLine(number); } else { Console.WriteLine(number); } }
- Изменено Oleg Kurzov 12 ноября 2014 г. 16:33
- Помечено в качестве ответа Иван Лукашов 13 ноября 2014 г. 19:09
12 ноября 2014 г. 16:32
Все ответы
-
static void Main(string[] args) { InputNumber(); Console.ReadLine(); } private static void InputNumber() { var line = Console.ReadLine().Trim(); var number = int.Parse(line); if (number != 0) { InputNumber(); Console.WriteLine(number); } else { Console.WriteLine(number); } }
- Изменено Oleg Kurzov 12 ноября 2014 г. 16:33
- Помечено в качестве ответа Иван Лукашов 13 ноября 2014 г. 19:09
12 ноября 2014 г. 16:32 -
В этом разделе кода выводится сообщение: Входная строка имела неверный формат
- Изменено Иван Лукашов 12 ноября 2014 г. 17:54
12 ноября 2014 г. 17:40 -
В условии "по одному на строчке". Зачем ты ввел сразу все?12 ноября 2014 г. 18:06
-
Да, извиняюсь, а как сделать одной строкой??12 ноября 2014 г. 18:43
-
Запускаешь программу. Вводишь 10 и жмешь энтер. Потом вводишь 20 и жмешь энтер. И так до конца.
После первого твоего энтера InputNumber() считает строку, проверит на неравенство нулю и вызовет сам себя. Чтоб было понятно как и почему приведенный выше код работает, почитай про stack и FILO
12 ноября 2014 г. 20:54 -
static void Main(string[] args) { InputNumber(); Console.ReadLine(); } private static void InputNumber() { var line = Console.ReadLine().Trim(); var number = int.Parse(line); if (number != 0) { InputNumber(); Console.WriteLine(number); } else { Console.WriteLine(number); } }
18 ноября 2014 г. 21:52 -
Язык тут не при чём. Это рекурсия. Почитай про рекурсию и стек.19 ноября 2014 г. 13:15
-
Язык тут не при чём. Это рекурсия. Почитай про рекурсию и стек.
Спасибо за ответ. Не могли бы кинуть пару хороших ссылок на тему?20 ноября 2014 г. 18:29 -
21 ноября 2014 г. 6:32Модератор
-
23 ноября 2014 г. 14:41