蛇形矩阵(20200308)

该博客介绍了如何使用Python生成蛇形矩阵,即从1开始的自然数形成的上三角形布局。博主提供了样例输入和输出,并详细解释了元素值与下标之间的关系,指出关键在于行递增1后行减1列加1的规律。博主表示代码还有改进空间,欢迎读者提供优化建议。

题目描述

题目说明
蛇形矩阵是由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的代码能力只能按上述方式实现,后续有更好的方案,欢迎各位指点,也会不定期做修改~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值