b558: 求数列第 n 项
这篇教学会示范 ZeroJudge 基础题库“b558: 求数列第 n 项”的解题过程。
题目需求
题目会提供一个数字 n,表示串列的长度,串列内容的第一项为 1,第二项的值为第一项加 1,第三项的值为第二项加 2,第四项的值为第三项加 3 ... 第 k 项的值为第 k-1 项的值加上 k-1,透过程序计算出第 n 项的数值。
题目链接:b558: 求数列第 n 项
解答
因为题目只有一个长度为 500 的串列,所以只要在开始前先计算出串列里所有的项目 ( 不需要每次在循环重复时产生一次串列内容 ),接着在循环开始后,单纯进行取值就能得到结果。
a = [1] # 串列第一項為 1
for i in range(1,501):
a.append(a[i-1]+i) # 將串列加入 2~500 項目,每個項目的內容為 a[i-1]+i
while True:
try:
n = int(input()) # 取得第幾項
print(a[n-1]) # 印出該項目結果
except:
break
微信扫码关注
抖音扫码关注