龙空技术网

酷叮猫Python课堂-蛇形填数

酷叮猫少儿编程 107

前言:

今天你们对“蛇形方阵c语言”大概比较关怀,小伙伴们都需要学习一些“蛇形方阵c语言”的相关文章。那么小编同时在网上汇集了一些关于“蛇形方阵c语言””的相关内容,希望姐妹们能喜欢,看官们一起来了解一下吧!

[题目]

在n * n 的方阵里填入1,2,3.....n * n,要求填成蛇形. 要求 n<=8

[输出]

例如: n=4 时方阵为:

10 11 12 1

9 16 13 2

8 15 14 3

7 6 5 4

[分析]

用一个2维数组来存储这个方阵。

先从方阵的右上角开始填写 1 ,每个数据都有一个坐标 (x,y), 改变坐标,使得数据可以分布在不同的位置。

就像是一条方形的螺旋线从外面绕到里面,数字就依次分布在这条看不见的螺旋线上。

实际上,就是关于(x,y)坐标的变化问题。 每次遇到边缘转向,或者遇到已经填好的数据时也要转向.

1<= n <=8

[运行结果]

[代码]

def app(n):

if n==1:

print(1)

else:

aa = [[0 for i in range(n)] for j in range(n)]

xid, yid = 0, (n-1) # 起点

i=1

for a in range(n*n):

aa[xid][yid] = i

while xid+1 xid+=1

i+=1

aa[xid][yid] = i

while yid-1>=0 and aa[xid][yid-1]==0:

yid-=1

i+=1

aa[xid][yid] = i

while xid-1>=0 and aa[xid-1][yid]==0:

xid-=1

i+=1

aa[xid][yid] = i

while yid+1 yid+=1

i+=1

aa[xid][yid] = i

for line in aa:

for a in line:

print("{:<5d}".format(a), end="")

print(' ')

if __name__=="__main__":

while True:

n = int(input("Please input number n:"))

if n>8 or n<1:

break

else:

app(n)

标签: #蛇形方阵c语言 #python输出一个n阶的方阵 #输出nn的数字方阵 #输出一个n阶的方阵python