Можете помощь по языке: 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
Приложения:
Ответы
Ответ дал:
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! Ответ не полностью!
какие право мелочи
ну сделайте вызов функции с инпутом
generateMatrix2(int(input("Введите n =")))
ну сделайте вызов функции с инпутом
generateMatrix2(int(input("Введите n =")))
ответ вышел! Спасибо!
ответ можно отметить лучшим. отвечающий действительно старался.
Вас заинтересует
1 год назад
1 год назад
2 года назад
2 года назад