На скриншоте =================
Приложил пример работы программы и добавил комментарии к коду.
Листинг:
from random import randint
n = randint(4, 6)
x = 0 # текущие номер элемента х
y = 0 # текущие номер элемента у
d = 0 # Направление перемещения 0 - вправо, 1 - вниз, 2 - влево, 3 - вверх
curr = 1 # номер элемента по порядку
c = n # размер цепочки
arr = [[0 for i in range(n)] for j in range(n)]
print(f"Размерность массива: {n}x{n}")
for i in range(n * n):
if d == 0:
arr[x][y] = curr
y += 1
curr += 1
if y == c:
y -= 1
d = 1
x += 1
continue
if d == 1:
if x == c:
x -= 1
d = 2
if d == 2:
if y == n - c - 1:
d = 3
if d == 3:
if x == n - c:
d = 0
c -= 1
print("Заполненный массив:")
for i in arr:
print(*i)
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Verified answer
На скриншоте =================
Приложил пример работы программы и добавил комментарии к коду.
Листинг:
from random import randint
n = randint(4, 6)
x = 0 # текущие номер элемента х
y = 0 # текущие номер элемента у
d = 0 # Направление перемещения 0 - вправо, 1 - вниз, 2 - влево, 3 - вверх
curr = 1 # номер элемента по порядку
c = n # размер цепочки
arr = [[0 for i in range(n)] for j in range(n)]
print(f"Размерность массива: {n}x{n}")
for i in range(n * n):
if d == 0:
arr[x][y] = curr
y += 1
curr += 1
if y == c:
y -= 1
d = 1
x += 1
continue
if d == 1:
arr[x][y] = curr
x += 1
curr += 1
if x == c:
x -= 1
d = 2
y -= 1
continue
if d == 2:
arr[x][y] = curr
y -= 1
curr += 1
if y == n - c - 1:
y += 1
d = 3
x -= 1
continue
if d == 3:
arr[x][y] = curr
x -= 1
curr += 1
if x == n - c:
x += 1
y += 1
d = 0
c -= 1
continue
print("Заполненный массив:")
for i in arr:
print(*i)