Предмет: Информатика,
автор: Meir63
Можете помощь по языке: Python
Даны числа n и m. Создайте массив A[n][m] и заполните его, как показано на примере.
Входные данные
Программа получает на вход два числа n и m.
Выходные данные
Программа должна вывести полученный массив.
примеры
входные данные:
4 10
выходные данные:
0 1 3 6 10 14 18 22 26 30
2 4 7 11 15 19 23 27 31 34
5 8 12 16 20 24 28 32 35 37
9 13 17 21 25 29 33 36 38 39
Приложения:
def generateMatrix1(n, m, is_right = True):
(c1, c2) = (2, 1) if is_right else (1, 2)
a = [[0] * m for i in range(n)]
for i in range(0, n):
for j in range(0, m):
a[i][j] = calcAPSum(i + j) + c2 * j + c1 * i - calcAPSum(max(0, j + i - n + c2)) - calcAPSum(max(0, j + i - m + c1))
for row in a:
print(*row)
return a
n, m = map(int, input().split())
generateMatrix1(n, m, True)
Ответы
Автор ответа:
0
Ответ:
Объяснение:
def printMatrix(a):
for row in a:
s = ""
for item in row:
s += f"{item:3d}"
print(s)
print()
def calcAPSum(n): # основанно на сумме арифметического ряда
return n * (n - 1) // 2
# is_right направление вращения спирали True - право, False - лево
def generateMatrix1(n, m, is_right = True):
(c1, c2) = (2, 1) if is_right else (1, 2)
a = [[0] * m for i in range(n)]
for i in range(0, n):
for j in range(0, m):
a[i][j] = calcAPSum(i + j) + c2 * j + c1 * i - calcAPSum(max(0, j + i - n + c2)) - calcAPSum(max(0, j + i - m + c1))
printMatrix(a)
return a
n, m = 10, 4
generateMatrix1(n, m, True)
Похожие вопросы
Предмет: Алгебра,
автор: arinaporvina36
Предмет: Английский язык,
автор: foxtrot542
Предмет: История,
автор: staskobzak596
Предмет: Химия,
автор: fserhkopg
Предмет: Химия,
автор: totalrigixt
return n * (n - 1) // 2