酷代码 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,应该将这三列顺次整体向下平移 1、2、

以下是使用 Python 解决此问题的代码: ```python def shift_matrix(matrix, n, k, x): for j in range(1, n, 2): for _ in range(k): temp = matrix[-1][j] for i in range(n - 1, 0, -1): matrix[i][j] = matrix[i - 1][j] matrix[0][j] = temp for j in range(1, n, 2): if matrix[0][j] == 0: matrix[0][j] = x row_sums = [sum(row) for row in 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(matrix, n, k, x) print(" ".join(str(s) for s in result)) ``` [2024-11-08 12:12:34 | AI写代码神器 | 227点数解答]

相关提问