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
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~