(Python)矩阵旋转

168 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

【问题描述】 输入矩阵阶数n,给n阶矩阵的元素按行序由1到n*n顺序赋值,然后将其向右旋转90度,输出旋转后的矩阵。

【输入形式】 控制台输入阶数n。

【输出形式】 输出旋转90度后的矩阵,其中每个数字占4位字符的宽度,向右对齐。

【样例输入】 4

【样例输出】 13 9 5 1 14 10 6 2 15 11 7 3 16 12 8 4

【样例说明】 输入整数n = 4,输出旋转后的矩阵。

实现代码:

 n = int(input())
 list = []
 result = []
 ​
 ​
 def Rotate(arr):
     for i in range(len(arr)):
         for j in range(i):
             arr[i][j], arr[j][i] = arr[j][i], arr[i][j]
     for i in range(len(arr)):
         for j in range(len(arr) // 2):
             temp = arr[i][j]
             arr[i][j] = arr[i][n - j - 1]
             arr[i][n - j - 1] = temp
 ​
 ​
 a = 0
 for i in range(n):
     for j in range(n):
         list.append(0)
     result.append(list)
     list = []
 ​
 for i in range(n):
     for j in range(n):
         a += 1
         result[i][j] = a
 ​
 Rotate(result)
 ​
 for i in result:
     for j in i:
         print("%4d" % j, end="")
     print()

运行结果:

在这里插入图片描述