Meydan okuma açıklaması
Bak ve Söyle dizisini içeren birkaç zorluk yaşadık . Hızlı hatırlatma:
- Dizi şununla başlar
1
, - Bu dizinin sonraki terimleri, önceki terimde her yinelenen basamak grubunun numaralandırılmasıyla oluşturulur,
İlk birkaç terim:
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"
Şimdi aynı şeyi yapalım, bunun yerine Romen Rakamlarını kullanalım . Biz başlamak I
(Okuduğumuz bu yüzden, bunun yerine karakterlere haneli sayma kuralı uygulamak ve aynı kuralları takip IVX
olarak one one, one five, one ten
yerine one four, one ten
veya başka bir şekilde):
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")
Olumlu bir tamsayı verildiğinde N
:
N
Bu dizinin ilk sayılarını çıktılayın (makul bir ayırıcı da iyidir["I", "II", "III", ...]
N
Bu dizinin çıktı terimi (0 indeksli olabilir).
Bu bir kod-golf meydan okuma olduğundan, kodunuzu mümkün olduğunca kısa yapmayı unutmayın !
EDIT: Her zaman tamsayı Romen rakamları olarak ifade etmek için bir standart / tercih edilen yolu olduğuna inanıyorum ( yerine 95
-> gibi ). Online Romen rakam dönüştürücüler birkaç Bence doğrulamak bulundu. Şüpheniz varsa, tüm olası uç durumları ve Romen rakamlarını yazmanın belirli kurallarını listeleyen bir çevrimiçi dönüştürücü kullanın , bu zorluğun noktası değildir.XCV
VC
EDIT2: @PeterTaylor ve @GregMartin olduğuna dikkat çeken tek sayılar daha az veya hiç eşit 5
Romen rakamına belirsizliği konusunda endişe etmek zorunda kalmamak için, sırayla görünür (sayılar 1
- 8
vardır I
, II
, III
, IV
, V
, VI
, VII
, ve VIII
)
4
/ IV
/ IIII
? Veya 95
/ XCV
/ VC
? Her zaman bir tamsayıyı ifade etmenin benzersiz bir yolu olmayabilir, ancak her zaman tercih edilen (standart) bir tane olduğundan eminim - yanlışsam beni düzeltin.