题目描述
题目说明
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
接口说明
原型
void GetResult(int Num, char * pResult);
输入参数:
int Num:输入的正整数N
输出参数:
int * pResult:指向存放蛇形矩阵的字符串指针
指针指向的内存区域保证有效
返回值:
void
输入描述:
输入正整数N(N不大于100)
输出描述:
输出一个N行的蛇形矩阵。
示例1
输入
4
输出
1 3 6 10
2 5 9
4 8
7
上三角蛇形矩阵
while True:
try:
num = int(input())
L = [[0 for j in range(0)] for i in range(num)]#L[]为num个子列表,每个列表为一行的数据
insert = 1
for i in range(num):#每行L[i]
for j in range(i+1):
L[i-j].append(str(insert))#L[i-j]为L[i]\L[i-1]\...L[0],将数分别加入每行列表中;#因为.join()为string类型,所以此处str()
insert=insert+1
for i in range(num):
print (' '.join(L[i]))
except:
break
环状蛇形矩阵
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
while True:
try:
N=int(input())
L=[[0 for j in range(N)] for i in range(N)]
insert=1
times=N#循环次数
i=0
j=0
while insert<=N*N:
#向右,列j增加,行i不变
for _ in range(times):
L[i][j]=str(insert)
insert+=1
j+=1
times-=1
#循环结束时初始化要变为下一次循环的起始值
j-=1
i+=1
#向下,行i增加,列j不变
for _ in range(times):
L[i][j]=str(insert)#因为用.join()的方法,所以加入str()的格式
insert+=1
i+=1
i-=1
j-=1
#向左,列j减小,行i不变
for _ in range(times):
L[i][j]=str(insert)
insert+=1
j-=1
times-=1
i-=1
j+=1
#向上,行i减小,列不变
for _ in range(times):
L[i][j]=str(insert)
insert+=1
i-=1
i+=1
j+=1
for i in range(N):
print(' '.join(L[i]))
except:
break
对角线走法蛇形矩阵