题目描述
给你一个n行m列的矩阵,顺时针旋转90度后输出
输入数据
第一行为两个整数n,m. 0<n,m<100 接下来有n行,每行m个正整数,每个数不超过100
输出数据
旋转后的矩阵
样例输入
2 3
1 2 3
4 5 6
样例输出
4 1
5 2
6 3
程序分析
解题思路
输入的是一个m×n的矩阵,旋转之后是n×m旋转分析 1) 旋转之前的No.0行,旋转之后为No.m-1列 2) 旋转之前的No.1行,旋转之后为No.m-2列 3) 旋转之前的No.m-1行,旋转之后为No.0列 4) 旋转之前的No.i 行,旋转之后为No.m-1-i 列 5) 旋转之前的No.m-1-j 行,旋转之后为No.j 列 得到旋转之后的矩阵 1)生成arrayDict2时,按照一列一列的生成,先生成第No.0列,接着No.1列。。。No.m-1列。所以先固定 j,让 i 取遍[0:n-1],下面是两个for循环的写法。
for j
in range(m
):
for i
in range(n
):
arrayDict2
[i
][j
] = arrayDict
[m
-1-j
][i
]
代码
m
, n
= map(int, input().split
())
arrayDict
= {}
for i
in range(m
):
arrayDict
[i
] = list(map(int, input().split
()))
arrayDict2
= [[0] * m
for i
in range(n
)]
for j
in range(m
):
for i
in range(n
):
arrayDict2
[i
][j
] = arrayDict
[m
-1-j
][i
]
for i
in range(n
):
for j
in range(m
-1):
print(arrayDict2
[i
][j
], end
=" ")
print(arrayDict2
[i
][m
-1])