月曜日のミニゴルフ:毎週月曜日に(願わくば!)投稿された一連の短いコードゴルフチャレンジ。
A フィボナッチ様配列は、有名なのと同じ方法を用いて得られるフィボナッチ数列。つまり、各数値F(n)は、シーケンス内の前の2つの数値を加算する(F(n)= F(n-1)+ F(n-2))か、次の2つの数値を減算する(F (n)= F(n + 2)-F(n + 1))。主な違いは、これらのシーケンスは任意の2つの数字で開始できることです。これらのシーケンスのゼロインデックス付けは議論の余地がありますが、今のところ、このルールを使用します。
- フィボナッチ数列の0番目の数字は、直前の数字よりも小さい最後の数字です。
例として、フィボナッチ数列はとして書くことができる1, 0, 1, 1, 2, 3, 5...
ので、数列の0番目の数字はlone 0
です。
チャレンジ
チャレンジの目標は、3つの整数を任意の形式で取り込むプログラムまたは関数を作成することです。
- AおよびB、シーケンスの生成を開始する2つの数値。
- N、出力する結果シーケンスの長さ。
そして、0番目から始まるシーケンスの最初のN個の数値を出力します。
詳細
- A、B、およびNは、視覚的に分離されている限り、任意の順序および形式で使用できます。別の順序/形式を使用する場合は、それが何であるかを指定してください。
- A、B、およびNは常に正の整数であると想定できます。
- Nは100以下であり、結果のシーケンスにはが含まれないと想定できます
x >= 2^31
。 - 場合Aがより大きいB、次いでBは、シーケンス内の0番目の数です。
- 出力は、スペース、コンマ、改行で区切る必要があります。
- 末尾のスペースまたは改行は使用できますが、末尾のコンマは使用できません。
テストケース
例1:
8 13 10
8 13
前よりも大きい数が見つかるまで逆方向に作業すると、が得られ13 8 5 3 2 1 1 0 1
ます。したがって、0
このシーケンスの0番目の数値です。これから前進し0
て、次の9人のメンバーを印刷します。
0 1 1 2 3 5 8 13 21 34
例2:
23 37 5
再び後方に移動して0番目の数を見つけます37 23 14 9 5 4 1 3
。今回の0番目の数字は1
ですので、次の4つのメンバーとともに出力します。
1 4 5 9 14
例3:
4 3 8
ので、この1で、我々は、0番目の番号を見つけるために、逆方向に働くことはありません3
よりも小さくなっています4
。
3 7 10 17 27 44 71 115
例4:
29 47 11
結果:
1 3 4 7 11 18 29 47 76 123 199
得点
これはcode-golfであるため、バイト単位の最短有効コードが優先されます。Tiebreakerは以前に投稿された投稿に移動します。勝者は9月28日の次の月曜日に選ばれます。頑張ってください!
編集:勝者の@Jakube、おめでとう、Pythを使って23バイトを驚かせてください!
[8, 13, 10]
)?