题解 | #蛇形矩阵#

蛇形矩阵

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

相关推荐

菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
评论
35
12
分享
牛客网
牛客企业服务