1 варик:
def spiral_array(n, m, array):
"""
Создает новый массив, содержащий элементы исходного массива,
расположенные по часовой стрелке.
Args:
n: Количество строк в массиве.
m: Количество столбцов в массиве.
array: Двумерный массив.
Returns:
Новый массив с элементами, расположенными по часовой стрелке.
"""
new_array = []
top, bottom = 0, n - 1
left, right = 0, m - 1
while top <= bottom and left <= right:
# Верхняя строка
for i in range(left, right + 1):
new_array.append(array[top][i])
top += 1
# Правый столбец
for i in range(top, bottom + 1):
new_array.append(array[i][right])
right -= 1
if top <= bottom:
# Нижняя строка
for i in range(right, left - 1, -1):
new_array.append(array[bottom][i])
bottom -= 1
if left <= right:
# Левый столбец
for i in range(bottom, top - 1, -1):
new_array.append(array[i][left])
left += 1
return new_array
# Ввод данных от пользователя
n = int(input("Введите количество строк: "))
m = int(input("Введите количество столбцов: "))
array = []
for _ in range(n):
row = list(map(int, input("Введите строку через пробел: ").split()))
array.append(row)
# Вызов функции и вывод результата
new_array = spiral_array(n, m, array)
print(*new_array)
второй варик:
n = int(input("Введите количество строк n: "))
m = int(input("Введите количество столбцов m: "))
array = []
print("Введите элементы массива:")
for _ in range(n):
row = list(map(int, input().split()))
array.append(row)
new_array = []
top, bottom = 0, n - 1
left, right = 0, m - 1
while top <= bottom and left <= right:
# Слева направо по верхней строке
for i in range(left, right + 1):
new_array.append(array[top][i])
top += 1
# Сверху вниз по правому столбцу
for i in range(top, bottom + 1):
new_array.append(array[i][right])
right -= 1
if top <= bottom:
# Справа налево по нижней строке
for i in range(right, left - 1, -1):
new_array.append(array[bottom][i])
bottom -= 1
if left <= right:
# Снизу вверх по левому столбцу
for i in range(bottom, top - 1, -1):
new_array.append(array[i][left])
left += 1
print("Новый массив:")
print(' '.join(map(str, new_array)))
Язык программирования Python