方阵的顺时针旋转(python)

题目描述:

输入一个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))

菜鸟一枚,代码仅供参考,如有问题,望指正~ 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值