フィボナッチの数畑

問題文
T(*´ω`)

今回は、

1 2 3 5 8 3 1

3 4 7 1 8 9 7

4 6 0 6 6 2 8

7 0 7 7 4 1 5

1 6 7 3 0 3 3

8 6 4 0 4 4 8

みたいなのをprintしてもらいます。
まあ、なんだこれと思う人がほとんどだと思うので、紹介していきます。


まず、「1桁フィボナッチ数列」を定義していきます。
最初に、0以上9以下の2つの数字があります。
例えば、

25

この0以上9以下の2つの数字のことを「」と言います。
まず、2+5=7をします。
答えの7をとって、

257

とまず書きます。
次に5+7をします。答えは12です。答えから1の位をとって、

2572

と書きます。
これを続けていくのが1桁フィボナッチ数列です。
(続けると、2572910112...になる。)


リストstartのstart[0]とstart[1]にそれぞれ種が入っています。
例えば、start[0]に1, 2、start[1]に3, 4、だったら、
まずこう書きます。

12

34

次に、普通に1桁フィボナッチ数列の種として、1桁フィボナッチ数列を展開します。
この時、start[0]の種とstart[1]の種の足した合計が多い方分だけやります。
例えば、今回の場合は、1+2=3で、3+4=7なので、の方が多いですよね。
なので、7回やります。(種を含む)
つまり、こうなります。

1235831

3471897

最後に、各列の上2つの数字を、1桁フィボナッチ数列の種として、下方向に展開します。
こうなるよね。

1235831

3471897

4606628

7077415

1673033

8640448

あっ。説明し忘れた。下方向には、縦向きに見て、左側の種と右側の種の足した合計が多い方分だけやります。
例えば、今回の場合は、1+3=4で、2+4=6なので、6の方が多いですよね。
なので、6回やります。


これで、わかったかな?

必要な変数と入力例

start = [
    [1, 2],
    [3, 4]
]

出力例

1235831
3471897
4606628
7077415
1673033
8640448

ちなみに、この問題の下位互換に当たるんですが「1桁フィボナッチ数列」という問題もあるので、ぜひ見てみてください。

  • 実行
  • ジャッジ