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 IVXolarak one one, one five, one tenyerine one four, one tenveya 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:
NBu dizinin ilk sayılarını çıktılayın (makul bir ayırıcı da iyidir["I", "II", "III", ...]NBu 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.XCVVC
EDIT2: @PeterTaylor ve @GregMartin olduğuna dikkat çeken tek sayılar daha az veya hiç eşit 5Romen rakamına belirsizliği konusunda endişe etmek zorunda kalmamak için, sırayla görünür (sayılar 1- 8vardı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.