Можете помощь по языке: Python

Дано число n. Создайте массив A[2*n+1][2*n+1] и заполните его по спирали, начиная с числа 0 в центральной клетке A[n+1][n+1]. Спираль выходит вверх, далее закручивается против часовой стрелки.


Входные данные

Программа получает на вход одно число n.


Выходные данные

Программа должна вывести полученный массив, отводя на вывод каждого числа ровно 3 символа.


примеры

входные данные:

2


выходные данные:

12 11 10 9 24

13 2 1 8 23

14 3 0 7 22

15 4 5 6 21

16 17 18 19 20

Приложения:

Ответы

Ответ дал: archery
1

def printMatrix(a):

   for row in a:

       s = ""

       for item in row:

           s += f"{item:3d}"

       print(s)

   print()

def generateMatrix2(n):

   k = 2 * n + 1

   a = [[0] * k for i in range(k)]

   a[n][n] = 0

   i, j = n - 1, n

   for c in range(1, k * k):

       a[i][j] = c

       if j > i and j == k - i - 1 :

           i -= 1

       elif j > i and j <= k - i - 1 :

           j -= 1

       elif j >= i and j > k - i - 1 :

           i -= 1

       elif j < i and j >= k - i - 1 :

           j += 1

       elif j <= i and j < k - i - 1 :

           i += 1

   printMatrix(a)

   return a

generateMatrix2(2)


Meir63: результаты вот так должен выйти: input: 2, а потом output: уже цифры 12......20! Ответ не полностью!
archery: какие право мелочи
ну сделайте вызов функции с инпутом
generateMatrix2(int(input("Введите n =")))
Meir63: ответ вышел! Спасибо!
p15: ответ можно отметить лучшим. отвечающий действительно старался.
Вас заинтересует