問題一覧 > 通常問題

No.526 フィボナッチ数列の第N項をMで割った余りを求める

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 650
作問者 : Leonardone / テスター : くれちー
9 ProblemId : 1344 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-06-25 01:18:06

問題文

フィボナッチ数列の第N項をMで割った余りを求めてください。
(初心者の方は、オーバーフローと余りの計算に注意してください)

フィボナッチ数列の第1項を0、第2項を1とします。
フィボナッチ数列の例と定義(漸化式)を示します。

F1=0
F2=1
F3=F31+F32=F2+F1=1+0=1
F4=F41+F42=F3+F2=1+1=2FN=FN1+FN2
フィボナッチ数 - Wikipedia
フィボナッチ数列 - オンライン整数列大辞典(OEIS)

入力

N M

NMが半角スペース区切りで与えられます。
10N5000000=5106
2M<231

出力

フィボナッチ数列の第N項をMで割った余りを出力してください。 最後に改行してください。

サンプル

サンプル1
入力
10 20
出力
14

N=10,M=20なのでフィボナッチ数列の第10項を20で割った余りを計算します
F1=0,F2=1,F3=1,F4=2,F5=3,F6=5,F7=8,F8=13,F9=21,F10=34となるので20で割ると余りは14になります

サンプル2
入力
20 1000
出力
181

サンプル3
入力
30 17
出力
13

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。