# -*- coding: utf-8 -*-
"""
Created on Mon May 28 14:00:56 2018
@author: Administrator
"""
import numpy as np
def PrintSnakeMatrix(n):
#输入n(正整数), 如果n=4,输出:
#10 11 12 1
#9 16 13 2
#8 15 14 3
#7 6 5 4
myArray = np.zeros((n,n), dtype=np.int16)
num = 1
i = 0 # i记录行
j = n-1 # j记录列
myArray[i][j] = num
while num < n*n:
while (i+1 < n and myArray[i+1][j] == 0):#向下,行不断增大,列不变
i += 1
num += 1
myArray[i][j] = num
while (j-1 >= 0 and myArray[i][j-1] == 0):#向左
j -= 1
num += 1
myArray[i][j] = num
while (i-1 >= 0 and myArray[i-1][j] == 0):#向上
i -= 1
num += 1
myArray[i][j] = num
while (j+1 < n and myArray[i][j+1] == 0): #向右
j += 1
num += 1
myArray[i][j] = num
print(myArray)
n = int(input("请输入n的值:"))
PrintSnakeMatrix(n)
算法题目
1.内层循环
条件--------与数组的维度比较 , 该位置是否为0
赋值
2.外层循环
是否达到数组元素的个数