1003号:フィボナッチ関数
import sys
input = sys.stdin.readline
t = int(input())
zero = [1,0,1,1]
one = [0,1,1,2]
for i in range(4,50):
Z = zero[i-1] + zero[i-2]
O = one[i-1] + one[i-2]
zero.append(Z)
one.append(O)
for i in range(t):
n = int(input())
print(zero[n],one[n])
この問題はフィボナッチ数を求めるだけでなく,N番目のフィボナッチ数が発生するまで0と1の出力量がどれだけあるかを知る.したがって、zero,oneというリストを作成し、iの最初のフィボナッチ数にどれだけ出力するかをiの最初のインデックスに0と1を格納します.
まずindex 0から3をリストに入れ、for文を使用して範囲4から50のi次フィボナッチ数の0と1出力値をリストに格納します.
(Nは40の自然数以下であるため、範囲はrange(4,41)とすることができる.)
そしてテストボックスのように出力します.
n = int(input())
P = [0,1,1]
for i in range(1,n+1):
p = P[1]+P[2]
P.append(p)
P.remove(P[0])
print(P[0])
これはn回のフィボナッチ数を求めるコードです.(これが必要な人のためかも…)
Reference
この問題について(1003号:フィボナッチ関数), 我々は、より多くの情報をここで見つけました https://velog.io/@mae03087/1003번-피보나치-함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol