#!/usr/bin/python3
'''
某公司面试题:
输入4,返回
01 12 11 10
02 13 16 09
03 14 15 08
04 05 06 07
返回的矩阵是逆时针旋转输出数字
'''
# 1、生成size*size的二维列表
# 2、遍历1~num*num,将遍历的数字放进二维数组中,orient用来控制方向(坐标变化)
# 生成size*size的二维列表
size=int(input("请输入图表尺寸(int): "))
arrayTemp=[]
for i in range(size):
arrayTemp+=[[0]*size]
print(arrayTemp)
print(size**2)
# 遍历1~num*num,将遍历的数字放进二维数组中,orient用来控制方向(坐标变化)
x,y=0,0 # 二维列表起始坐标
orient=0 # orient控制变向,按逆时针:0代表下、1代表右、2代表上,3代表左
for i in range(1,size**2+1):
arrayTemp[x][y]=i
if (x+y)==(size-1): # 第一种情况,图形左上角和右上角,向左或向右转弯
if x>y:
orient=1
elif x<y:
orient=3
elif x==y and x>=(size/2): # 第二种情况,图形右下角,向上转弯
orient=2
elif x==y-1 and y<=(size/2): # 第三种情况,左上01开始,向下转弯
orient=0
if orient==0:
x+=1
elif orient==1:
y+=1
elif orient==2:
x-=1
elif orient==3:
y-=1
# print(arrayTemp)
# 遍历二维列表,将数据打印出来
for i in range(size):
for j in range(size):
print("%02d"%(arrayTemp[i][j]),end="\t")
print()