Skip to content

Latest commit

 

History

History

task11_snail

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

Задача 11. Улитка

Условие

По заданному числу n постройте в форме улитки двумерный массив размером n × n, заполненный числами от единицы до n². «Улиткой» считается числовая спираль, начинающаяся в левом верхнем углу и закручивающаяся по часовой стрелке.

Идея решения

Идём по матрице от левого верхнего угла, заполняя числами от 1 до n². Текущее направление храним в dir (0 — вправо, 1 — вниз, 2 — влево, 3 — вверх). На каждом шаге пытаемся шагнуть вперёд; если следующая клетка выходит за границу или уже заполнена — поворачиваем направо (dir = (dir + 1) % 4).

Ввод

Одно число n (1 ≤ n ≤ 10).

Вывод

Заполненный по спирали массив n² чисел, разделённых одним знаком пробела.

Пример 1

Ввод:

2

Вывод:

1 2
4 3

Пример 2

Ввод:

3

Вывод:

1 2 3
8 9 4
7 6 5

Как запустить

g++ -std=c++23 -O2 solution.cpp -o solution
./solution

Программа ждёт ввод с клавиатуры. Введи n и нажми Enter.

Ограничения

  • Время: 1 сек
  • Память: 64 МБ