Недавно попалась интересная задача. Не думаю, что её можно применить в реальном проекте, но зато можно неплохо вспомнить работу рекурсии. Задача больше подойдет начинающим программистам для тренировки альтернативного алгоритмического мышления.
Задача
Дана последовательность целых чисел, заканчивающаяся числом 0. Выведите эту последовательность в обратном порядке. При решении этой задачи нельзя пользоваться массивами и прочими динамическими структурами данных. Можно ли не использовать циклы?
Что ж, давайте я тоже поделюсь своими соображениями...
Ниже условия представлены 4 возможных реализации решения, которые первыми приходят на ум. (С, C++, Python, Python через лямбда-функции).
Есть ли еще способы и аналогичные задачи? Давайте рассмотрим следующую задачку
Дано натуральное число N. Поменять порядок цифр числа N на обратный
Решение:
1 способ:
Зеркальное отображение числа так как будто это число.
Плюсы: работа с числами всегда быстрее
Минусы: в случае окончания числа на 0 получается не совсем верное отображение ( Пример: 560 —> 65 )
2 способ:
Работа с числом как со строкой. Создается новая строка и с помощью конкатенации к ней присоединяются все символы исходной строки, начиная с конца. Отображает зеркально все символы.
( Пример: 560 —> 065 ). Остается вопрос: можно ли считать 065 тоже натуральным числом? Нет. Поэтому условие задачи не вполне корректное.
3 способ:
Использование срезов для строк. Результат аналогичен второму.
А как Вы решили бы данную задачку на вашем любимом языке программирования? Напишите в комментариях :)
Еще много полезного и интересного вы сможете найти на ресурсах:
Репетитор IT mentor в Instagram
Physics.Math.Code в контакте (VK)