螺旋阵:任意给定n的值,an如下螺旋方式输出方阵
'''
n = 3 输出:1 8 7
2 9 6
3 4 5
n = 4 输出:1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
算法设计1:
此例按照摆放数据的过程,逐圈分别处理每圈的左,下,右,上方的数据。以能n=4为例:
把1--12看做一层,13--16看做第二层....以层作为外层循环,下标白能量为i,n=3,4均为2层,用n//2表示下取整,这样(n+1)//2恰好表示对n//2上取整。所以下标变量i的范围1--(n+1)/2
i层内摆放的数据4个过程为(四个角的元素归为4个边)
1、i列(左侧),从i到n-i行, (n=4,i=1时,摆放1,2,3)
2、n+1-i行(下方),从i列到n-i列 (n=4,i=1时,摆放4,5,6)
3、n+1-i列(右侧),从n+1-i行到i+1行 (n=4,i=1时,摆放7,8,9)
4、i行(上方),从n+1-i列到i+1列 (n=4,i=1时,摆放10,11,12)
用j表示i层中每边中行或列的下标
'''
def main1():
a = []
for i in range(0, 100): # 构造一个二维数组
b = []
for j in range(0, 100):
b.append(0)
a.append(b)
n = int(input("请输入n的值:"))
k = 1
for i in range(1,n//2+1):
for j in range(i,n-i+1): #左侧
a[j][i] = k
k += 1
for j in range(i,n-i+1): #下方</