Пара алгоритмических задач для успешного программиста нарисовать змейку, выстроить зиккурат

Пара алгоритмических задач для успешного программиста нарисовать змейку, выстроить зиккурат

В конце марта Библиотека программиста опубликовала суперподборку более, чем 70 бесплатных русскоязычных курсов. Стараясь не отставать от читателей, мы сами штудируем курсы. Мимоходом попадаются занимательные задачки, решение которых доставляет подлинное удовольствие.

Ниже пара таких задач – мы предлагаем вам попробовать их решить и поделиться программным кодом в комментариях! Для решения можно использовать любой язык программирования. Даже в одном и том же языке можно применять абсолютно разные подходы – было бы интересно сравнить, как они различаются по скорости выполнения.

В комментариях действует Markdown-разметка – для вставки форматированного кода ограничьте его с двух сторон тройными апострофами:

Задача: напишите функцию, которая принимает число n и выводит таблицу размером n * n , заполненную числами от 1 до n 2 по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке.

Пример. Пусть n = 5 , функция должна вернуть матрицу вида

Эту задачу мы повстречали в курсе «Программирование на Python». Если вы зайдёте в тупик – наводки можно найти в обсуждении задания. Попробуйте решить компактно и без дублирования кода.

Задача: напишите функцию, которая принимает целое число n и выводит «ступенчатую» матрицу, состоящую из n «этажей». Этажи нумеруются с первого, ширина ступеньки равна одной строке или столбцу.

Пример. Пусть n = 4 , функция должна вернуть матрицу вида

Данную головоломку мы нашли в курсе «Основы программирования на R». Если у вас возникли трудности, посмотрите комментарии обсуждения задания (в них есть специфика применения R). Особый интерес вызывает решение без циклов и рекурсий.

Если вам по вкусу подобные задачки, обратите внимание на наш сериал головоломок из 15 серий. В каждой серии новая задача и подробный ответ на предыдущую: