关注
哈喽,虽然我们现在彼此不认识,但是很高兴认识你 这两天我一直在认真思考这道题的解法,并且多次尝试用代码实现,不过就是卡住,用代码实现总是报错 后来发现是自己找到了递推公式 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
相关推荐


万得信息
| 校招
| 超多精选岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 985计算机老学长掏心窝子:当年我踩过的坑,希望你们能绕开3.6W
- 2... 想要在大厂生存必须要学会提效5691
- 3... 腾讯实习基地-ieg-Level Infinite-一面5383
- 4... 字节飞书后端面试5342
- 5... 腾讯-后台开发-腾讯hr部门 一面4718
- 6... 实习入职第一天,应该做点啥❓4330
- 7... 2.17校招&实习招聘信息汇总4149
- 8... 实习第二天,被老员工欺负了3905
- 9... 重生归来,鼠鼠接手北区业务,这一次......3654
- 10... 【已挂】影石Insta360|嵌入式软件|日常实习一面3091
正在热议
更多
# 读研or工作,哪个性价比更高? #
24636次浏览 333人参与
# 如果重来一次你还会读研吗 #
154697次浏览 1701人参与
# 科大讯飞求职进展汇总 #
258964次浏览 2595人参与
# 秋招感动瞬间 #
11010次浏览 103人参与
# 阿里巴巴创始人马云回国 #
14262次浏览 87人参与
# 职场新人生存指南 #
195863次浏览 5398人参与
# 你最满意的offer薪资是哪家公司? #
11967次浏览 109人参与
# 长光卫星求职进展汇总 #
27606次浏览 184人参与
# 文科生还参加今年的春招吗 #
3430次浏览 29人参与
# 追觅科技求职进展汇总 #
8547次浏览 58人参与
# 选择和努力,哪个更重要? #
42347次浏览 472人参与
# 招聘要求与实际实习内容不符怎么办 #
41606次浏览 469人参与
# 打工人的工作餐日常 #
24748次浏览 221人参与
# 机械制造岗投递时间线 #
19329次浏览 324人参与
# 小红书求职进展汇总 #
40465次浏览 346人参与
# 影石Insta360求职进展汇总 #
107723次浏览 969人参与
# 如果再来一次,你还会学硬件吗 #
102856次浏览 1236人参与
# 机械人选offer,最看重什么? #
68628次浏览 433人参与
# 机械人怎么评价今年的华为 #
180369次浏览 1485人参与
# 滴!实习打卡 #
554936次浏览 6009人参与