题解 | #蛇形矩阵#

蛇形矩阵

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

找到值与行列的关系,即 value=(i+j-2)*(i+j-1)/2+j,i,j是所属行与列。然后判定换行的时机,即j=N-i+1时,所属行已排满,换行
while True:
    try:
        m = int(input())
        for i in range(1, m + 1):
            for j in range(1, m - i + 2):
                if j == m - i + 1:
                    print((i + j - 2) * (i + j - 1) // 2 + j)
                else:
                    print((i + j - 2) * (i + j - 1) // 2 + j, end=' ')
    except:
        break

全部评论
你有点聪明啊
1 回复 分享
发布于 2022-02-04 11:12
这是人能想出来的规律?
7 回复 分享
发布于 2022-04-09 17:06
厉害,分析了很久还是表示没看懂
1 回复 分享
发布于 2022-03-01 20:42
你有点聪明啊
点赞 回复 分享
发布于 2022-02-14 15:41
你有点聪明啊
点赞 回复 分享
发布于 2022-02-28 21:06
我也没看懂
点赞 回复 分享
发布于 2022-03-07 21:58
请问i和j的范围为什么是range(1, m + 1)和range(1, m - i + 2),求解谢谢
点赞 回复 分享
发布于 2022-03-08 11:09
这真的是大佬,这观察得多敏锐才能找出规律的。。好家伙
点赞 回复 分享
发布于 2022-04-05 19:17
n = int(input()) s = 0 lst1 = [] for i in range(n): lst = [] for j in range(1,i+2): s += 1 lst.append(s) lst1.append(lst) lst = [i[::-1] for i in lst1] lst4 = [] for i in range(n): lst3 = [] for j in lst: lst3.append("".join(map(str,(j[i:i+1])))) l = ".".join(lst3) lst4.append(l) s = lst4 for i in range(len(s)): for k in s[i].split("."): if k.isdigit(): print(k,end=" ") print()
点赞 回复 分享
发布于 2022-05-15 19:33

相关推荐

头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
评论
35
12
分享
牛客网
牛客企业服务