チャレンジの説明
Look-and-sayシーケンスに関連するいくつかの課題がありました。クイックリマインダー:
- シーケンスは、
1
で始まります - このシーケンスの後続の用語は、前の用語の繰り返し数字の各グループを列挙することにより生成されます。
したがって、最初のいくつかの用語は次のとおりです。
1 "one"
11 "one one" (we look at the previous term)
21 "two ones"
1211 "one two, one one"
111221 "one one, one two, two ones"
312211 "three ones, two twos, one one"
今度は同じことをしましょうが、代わりにローマ数字を使用します。最初からI
同じルールに従います(代わりに数字カウントルールを文字に適用するためIVX
、one one, one five, one ten
代わりに、one four, one ten
または他の方法で読み取ります)。
I "one"
II "one one"
III "two ones" = "II" + "I"
IIII "three ones" = "III" + "I"
IVI "four ones" = "IV" + "I"
IIIVII "one one, one five, one one"
IIIIIVIII "three ones, one five, two ones" = ("III" + "I") + ("I" + "V") + ("II" + "I")
次のN
いずれかの正の整数を指定します。
N
このシーケンスの最初の数字を出力します(妥当なセパレーターはもちろん、["I", "II", "III", ...]
N
このシーケンスのth番目の用語を出力します(0インデックスが付いている場合があります)。
これはコードゴルフの課題なので、コードをできるだけ短くすることを忘れないでください!
編集:私は常に整数をローマ数字として表現するための1つの標準/優先方法があると信じています(の代わりに95
->のXCV
ようにVC
)。私がオンラインで見つけたローマ数字のコンバーターのカップルは私の意見を裏付けています。疑問がある場合は、オンラインコンバーターを使用してください。すべての可能なエッジケースとローマ数字の記述の特定の規則をリストすることは、この課題のポイントではありません。
EDIT2:@PeterTaylorと@GregMartinは指摘数字だけ小さいか等しい5
あなたはローマ数字のあいまいさを心配する必要はありませんので、順に表示されます(数字1
- 8
ですI
、II
、III
、IV
、V
、VI
、VII
、及びVIII
)
4
/ IV
/ IIII
?または95
/ XCV
/ VC
?整数を表現するユニークな方法が常にあるとは限りませんが、常に優先される(標準の)方法があると確信しています。間違っている場合は修正してください。