#!/usr/bin/python3
# test01
'''
99乘法表
'''
for i in range(1,10):
for j in range(1,i+1):
print('%s*%s = %d'%(i,j,i*j),end=' ')
print()
# test02
'''
等腰三角形
'''
n=int(input('输入数字'))
for i in range(1,n+1):
print(' '*(n-i)+'*'*(2*i-1))
# test03
'''
横竖斜总和相等的奇数矩阵:
从小到大依次放入矩阵中,下一个数放在上一个数的右上角位置(即:行-1,列+1)
1总是在第一行的中间位置,接着将2放在1的右上角,依次类推
a.如果右上角的位置的行和列都越界,就将这个数放在上个数的正下方(即:上个数的行+1)
b.如果右上角的位置只有行越界,就将行改到最大,列不变
c.如果右上角的位置只有列越界,就将列改到最小,行不变
d.如果右上角的位置没有越界,但是已经填有数字,就将这个数放在上个数的正下方。
'''
n=int(input('请输入一个奇数'))
martix=[[0 for i in range(n)] for j in range(n)] #双重列表推导式构建出二维数组
num=1
y,x=0,n//2 #n整除2结果是第一行中间的列号
for num in range(1,n*n+1):
martix[y][x]=num
y-=1
x+=1
if y<0 and x>n-1:
y=y+2
x=x-1
elif y<0:
y=n-1
elif x>n-1:
x=0
elif martix[y][x]!=0:
y=y+2
x=x-1
# while num <= n*n:
# martix[i][j]=num
# num += 1
# i-=1
# j+=1
# if i<0 and j>n-