题目描述:
输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵
旋转举例:(如下四个三阶方阵从左到右为数字围绕中心顺时针旋转)
1 2 3 7 4 1 9 8 7 3 6 9
4 5 6 8 5 2 6 5 4 2 5 8
7 8 9 9 6 3 3 2 1 1 4 7
输入描述:
输入第一行一个正整数N(0<N<10)
接下来N行每行N个整数用空格分开,为方阵的数据
记下来一行一个正整数M(0<=M<=10000)
说明:不用考虑异常输入,所有输入都是正常的,严格遵从取值范围
输出描述:
N行,每行N个整数,用空格分开,为旋转后的数据
示例1:
输入:
1
1 2 3
4 5 6
7 8 9
2
输出:
9 8 7
6 5 4
3 2 1
import sys
num1 = int(sys.stdin.readline().strip())
list_ = []
for i in range(num1):
line = sys.stdin.readline().strip().split()
list_.append(line)
num2 = int(sys.stdin.readline().strip())
t = num2%4
if t == 0:
for i in range(num1):
temp = list_[i]
print(' '.join(temp))
elif t == 1:
for i in range(num1):
temp = []
for j in list(reversed(range(num1))):
temp.append(list_[j][i])
print(' '.join(temp))
elif t == 2:
for i in list(reversed(range(num1))):
temp = []
for j in list(reversed(range(num1))):
temp.append(list_[i][j])
print(' '.join(temp))
else:
for i in list(reversed(range(num1))):
temp = []
for j in range(num1):
temp.append(list_[j][i])
print(' '.join(temp))
菜鸟一枚,代码仅供参考,如有问题,望指正~