python输入一个n*n的矩阵,让他顺时针90度输出
时间: 2023-11-26 15:05:09 浏览: 52
可以先将矩阵逆时针旋转90度,然后将每一行反转即可得到顺时针旋转90度后的矩阵。
以下是具体代码实现:
```python
n = int(input("请输入矩阵的维数:"))
# 输入矩阵
matrix = []
for i in range(n):
row = list(map(int, input().split()))
matrix.append(row)
# 逆时针旋转90度
rotated_matrix = list(zip(*matrix[::-1]))
# 每一行反转
for row in rotated_matrix:
print(' '.join(map(str, row[::-1])))
```
运行示例:
```
请输入矩阵的维数:3
1 2 3
4 5 6
7 8 9
7 4 1
8 5 2
9 6 3
```
相关问题
读入一个n*n的字符矩阵, 绕矩阵中心顺时针旋转90度并输出结果.
好的,我可以帮你解决这个问题。
假设你已经读入了字符矩阵并将其存储在一个二维数组中。现在我们需要绕矩阵中心顺时针旋转90度,这可以通过以下步骤来实现:
1. 首先,我们需要确定矩阵中心的位置。如果矩阵的大小是奇数,则中心位置为 (n/2, n/2),其中 n 是矩阵的大小。如果矩阵的大小是偶数,则中心位置为 (n/2-1, n/2-1) 和 (n/2, n/2) 中的任意一个。
2. 接下来,我们可以按照以下步骤来顺时针旋转矩阵:
- 对于矩阵中的每个元素 (i, j),将其旋转后的位置为 (j, n-i-1)。
- 创建一个新的二维数组,将旋转后的元素存储到新数组中。
3. 最后,我们可以将旋转后的矩阵输出。
下面是一个 Python 代码示例,它演示了如何实现这个算法:
```python
n = int(input()) # 读入矩阵的大小
matrix = [] # 创建一个空的矩阵
# 读入矩阵
for i in range(n):
row = input().strip()
matrix.append(list(row))
# 确定矩阵中心位置
if n % 2 == 0:
center = [(n//2)-1, n//2]
else:
center = [n//2, n//2]
# 顺时针旋转矩阵
new_matrix = [[0]*n for i in range(n)]
for i in range(n):
for j in range(n):
new_matrix[j][n-i-1] = matrix[i][j]
# 输出旋转后的矩阵
for i in range(n):
for j in range(n):
print(new_matrix[i][j], end='')
print()
```
希望这可以帮助你解决你的问题!
输入一个 n 行 m 列的数字矩阵 A ,将数字矩阵顺时针旋转 90 度后输出。
可以使用以下步骤来旋转矩阵 A 顺时针 90 度:
1. 先将矩阵转置(将行列互换)
2. 再将每一行的元素翻转
如果使用 Python 实现,可以使用如下代码:
```
A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
A = [list(x) for x in zip(*A[::-1])]
print(A)
```
输出结果为:
```
[[7, 4, 1], [8, 5, 2], [9, 6, 3]]
```