考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC079-B - Lucas Number を解く

ABC079-B - Lucas Number

 

…リュカ数?

なんだか圧倒されるが、定義が書かれているので落ち着いて読んでみる

 

リュカ数の最初の2つは 2 と 1 で、3番目の数は1番目と2番目を足した数

4番目の数は2番目と3番目を足した数、5番目の数は3番目と4番目を足した数

6番目の数は4番目と5番目を足した数 …

というように定義されるらしい。実際に並べてみると以下のようになる

 

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, …

 

1 <= N <= 86 という小さい制約なので

実際にシミュレーションして作ってみることにする

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

l=[]
l.append(2)
l.append(1)

for i in range(85):
  l.append(l[i]+l[i+1])

# 入力
N=int(input())

# 出力
print(l[N])

 

提出結果はACでした