编写函数`print_clockwise(matrix)`,输入一个方阵,从左上角开始,顺时针的顺序逐圈打印数字。
时间: 2024-05-07 19:16:33 浏览: 54
好的,这个问题是可以回答的。以下是代码实现:
```python
def print_clockwise(matrix):
rows, cols = len(matrix), len(matrix[0])
start, res = 0, []
while rows > start * 2 and cols > start * 2:
end_row, end_col = rows - 1 - start, cols - 1 - start
# 从左到右打印一行
for i in range(start, end_col + 1):
res.append(matrix[start][i])
# 从上到下打印一列
if start < end_row:
for i in range(start + 1, end_row + 1):
res.append(matrix[i][end_col])
# 从右到左打印一行
if start < end_row and start < end_col:
for i in range(end_col - 1, start - 1, -1):
res.append(matrix[end_row][i])
# 从下到上打印一列
if start < end_row - 1 and start < end_col:
for i in range(end_row -1, start, -1):
res.append(matrix[i][start])
start += 1
print(res)
```
这个函数可以从左上角开始按照顺时针方向逐圈打印数字,可以适用于任意大小的方阵。例如,对于一个 $4 \times 4$ 的方阵:
```python
matrix = [[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]]
print_clockwise(matrix)
```
输出的结果为:
```
[1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10]
```
希望这个函数可以满足您的需求!
阅读全文