STEP #1

(1/2)

此处切换ai服务商,可对比多家ai的回复,取最优解。

上一步下一步关闭
酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

给定一个 n×n 的整数矩阵。对任一给定的正整数 k<n,我们将矩阵的偶数列的元素整体向下依次平移 1、……、k、1、……、k、…… 个位置,平移空出的位置用整数 x 补。你需要计算出结果矩阵的每一行元素的和。 输入格式: 输入第一行给出 3 个正整数:n(<100)、k(<n)、x(<100),分别如题面所述。 接下来 n 行,每行给出 n 个不超过 100 的正整数,为矩阵元素的值。数字间以空格分隔。 输出格式: 在一行中输出平移后第 1 到 n 行元素的和。数字间以 1 个空格分隔,行首尾不得有多余空格。 输入样例: 7 2 99 11 87 23 67 20 75 89 37 94 27 91 63 50 11 44 38 50 26 40 26 24 73 85 63 28 62 18 68 15 83 27 97 88 25 43 23 78 98 20 30 81 99 77 36 48 59 25 34 22 输出样例: 440 399 369 421 302 386 428 样例解读 需要平移的是第 2、4、6 列。给定 k=2,应该将这三列顺次整体向下平移

以下是使用 Python 解决此问题的代码: ```python def shift_matrix(n, k, x, matrix): new_matrix = [row[:] for row in matrix] for col in range(1, n, 2): temp = [new_matrix[i][col] for i in range(n - k, n)] for i in range(n - 1, k - 1, -1): new_matrix[i][col] = new_matrix[i - k][col] for i in range(k): new_matrix[i][col] = x for i in range(k, n - k): new_matrix[i][col] = temp[i - k] row_sums = [sum(row) for row in new_matrix] return row_sums n, k, x = map(int, input().split()) matrix = [] for _ in range(n): matrix.append(list(map(int, input().split()))) result = shift_matrix(n, k, x, matrix) print(*result) ``` [2024-11-08 12:11:53 | AI写代码神器 | 235点数解答]

相关提问