关注
哈喽,虽然我们现在彼此不认识,但是很高兴认识你 这两天我一直在认真思考这道题的解法,并且多次尝试用代码实现,不过就是卡住,用代码实现总是报错 后来发现是自己找到了递推公式 a[i]=a[i-1] + i + 1 i >= 1 a[0]=1,想直接用递推公式进行代码实现,后来苦想了两天(哭,可惜我不是那种智商贼高,一点就透的人,不仅花了两天时间,而且期间因为做不出来搞的贼痛苦。。)才发现要回到高中数学,用递推公式求通项式: a[i]=a[i-1] + i + 1 a[i]-a[i-1] = i + 1 a[i-1]-a[i-2] = i a[i-2]-a[i-3] = i - 1 . . . a[2]-a[1] = 3 a[1]-a[0] = 2 将以上式子相加得到: a[i]-a[0]= i + 1 + i + i-1 + ... + 3 + 2 因为a[0]=1,所以有: a[i] = i + 1 + i + i-1 + ... + 3 + 2 + 1 或许你和我一样模模糊糊记得高斯小时候如何计算从1到100的和那个小故事: 大约在高斯十岁的时候,老师在算数课上出了一道难题:「把1到100的整数写下来,然后把它们加起来!」高斯的答案上只有一个数字:5050 老师吃了一惊,高斯就解释他如何找到答案:1+100=101,2+99=101,3+98=101,……,49+52=101,50+51=101,一共有50对和为101的数目,所以答案是50×101=5050。 a[i] = i + 1 + i + i-1 + ... + 3 + 2 + 1 中,i + 1 后面的i + i-1 + ... + 3 + 2 + 1 就跟高斯的算法一样,有二分之一 i 对 i+1,再加上前面一个i+1(这里考虑i为奇偶数后,依然是这个结果),就是1/2i+1 对 i + 1, 那么他们的和就是(1/2i+1)* ( i + 1)= (i+2)*(i+1)/2 这样我们就得到了 a[i] =(i+2)*(i+1)/2,也就是第一行的元素的计算公式。 从而我们就能看懂评论区解法中的一种,的核心代码:res=[(e+2)*(e+1)//2 for e in range(N)],其实就是利用我们计算出的公式,来计算第一行的元素。 这个题的第一行计算出来,后面的就简单了,下一行是上一行除去第一个数以后的其它数减1,以此类推,就可以得到整个蛇形矩阵。 代码可以参考: import sys for line in sys.stdin: N=int(line.strip()) res=[] for i in range(N): if i==0: res=[(e+2)*(e+1)//2 for e in range(N)] else: res=[e-1 for e in res[1:]] # print(res) #其实到这里核心代码就结束了 for t in res: print(t,end=" ") print()
1
相关推荐
点赞 评论 收藏
分享
04-02 19:24
武汉城市学院 测试工程师 点赞 评论 收藏
分享
查看6道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
- 1... AI Agent 面试 Top50 必刷题2.0W
- 2... 看不懂组内文档,实习怎么偷产出?8843
- 3... 解决了xd们,发了个dy曝光视频,十几万播放,直接让他火速联系我,赔我路费了,兄弟们碰到不公平的违法行为,一定要积极捍卫自己权益5869
- 4... 五月了,感觉实习很难找了5591
- 5... 妈妈只想要你快乐4044
- 6... 要对实习同事表白吗?3833
- 7... 26届双非本求职总结3494
- 8... 三段大厂,说下我见过的最低学历3313
- 9... 理性讨论,卷实习算不算工贼行为?3204
- 10... 实习一个星期,我因为只加了20分钟班被开除了3084
正在热议
更多
# 26届春招投递记录 #
36399次浏览 306人参与
# 你今年的平均薪资是多少? #
230127次浏览 1069人参与
# 如何成为1个AI工程师? #
5710次浏览 281人参与
# 携程笔试 #
180033次浏览 928人参与
# 27届实习投递记录 #
121598次浏览 1380人参与
# 我想象的实习vs现实的实习 #
340751次浏览 2316人参与
# 求职你最看重什么? #
170373次浏览 915人参与
# 秋招提前批,你开始投了吗 #
766617次浏览 8495人参与
# 工作丧失热情的瞬间 #
401257次浏览 2589人参与
# 要毕业了,再不说就来不及了 #
9121次浏览 154人参与
# 哪些公司校招卡第一学历 #
262441次浏览 879人参与
# 硬件人的简历怎么写 #
349630次浏览 3141人参与
# 国庆假期,给大脑放个假 #
26939次浏览 121人参与
# 你在职场上见过哪些“水货”同事 #
41981次浏览 179人参与
# 机械人的秋招小目标 #
32951次浏览 251人参与
# 面试被问第一学历差时该怎么回答 #
297169次浏览 2306人参与
# 你觉得机械有必要实习吗 #
89070次浏览 537人参与
# AI面会问哪些问题? #
136757次浏览 3679人参与
# 提名点击就挂的公司 #
146700次浏览 494人参与
# 听到哪句话就代表面试稳了or挂了? #
271338次浏览 1733人参与