题目描述
题目说明
蛇形矩阵是由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
题解:
思路:这是一种题型,根据要求输出图形或数列,如杨辉三角、舅舅乘法表等,这种题型最关键的是要找到元素的值与其下标之间的联系
如本题,数列为
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
下标为
[0,0][0,1][0,2][0,3][0,4]
[1,0][1,1][1,2][1,3]
[2,0][2,1][2,2]
[3,0][3,1]
[4,0]
可以看出,下标之和都小于n,且数字放置的位置为,行递增1后,行减1列加1
#coding=utf-8
n=int(input())
num=0
count=0
#定义一个二维数组
arr=[[0 for x in range(n)]for y in range(n)]
#数组赋值
for count in range(n):
#控制行递增情况
i=count
j=0
while i<n and i>=0:
#下标之和等于行数时,赋值
if i+j==count:
num+=1
arr[i][j]=num
#每赋一个值,行减1列加1
i-=1
j+=1
#输出
for i in range(n):
print()
for j in range(n):
if arr[i][j]!=0:
print(arr[i][j],end=' ')
说明:
目前本King的代码能力只能按上述方式实现,后续有更好的方案,欢迎各位指点,也会不定期做修改~
该博客介绍了如何使用Python生成蛇形矩阵,即从1开始的自然数形成的上三角形布局。博主提供了样例输入和输出,并详细解释了元素值与下标之间的关系,指出关键在于行递增1后行减1列加1的规律。博主表示代码还有改进空间,欢迎读者提供优化建议。
&spm=1001.2101.3001.5002&articleId=104739159&d=1&t=3&u=9fbeddb212ca478aadb0ce271ceaf1f4)
659

被折叠的 条评论
为什么被折叠?



