题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

n = int(input().strip())
for i in range(n):
    num = 0
    for j in range(i + 1, n + 1):
        if i == 0 and j == 1:
            num = 1
            print(num, end=" ")
        elif i + 1 == j:
            num = int((i + 1) * i / 2 + 1)
            print(num, end=" ")
        else:
            num += j
            print(num, end=" ")
    print("")

通过观察发现,第一例规律如下

第一行第一列:1

第二行第一列:2 = 1 + 1

第三行第一列:4 = 1 + 1 + 2

第四行第一列:7 = 1 + 1 + 2 + 3

可以发现从第二列开始便有规律 (n+1)n/2+1(等差数列求和 + 1)

---------------------------------------------------------

通过观察第一行发现规律 1,3,5,9 前两个数差2,第二个和第三个数之间差3,第三个数和第四个数之间差4

第二行2,5,9 前两个数差3,第二个和第三个数之间差4

以此类推,每一行的第一个数和第二个数之间差行数那么多的值,后面每两个数之间的差在此基础上加1

---------------------------------------------------------

通过以上分析,需特殊判断第一行第一列、第一列、以及除此之外的数。这里让i从0开始(以便于求第一列的值),j从i+1开始(以便于计算前后两个数的差值)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务