Sen (burada bir dize yapmak istiyorum 1-endeksli endeksine) karakteri n
olduğunu n
. Ne zaman n
10 daha azdır, bu kolaydır: "123456789"
. n
Örneğin 12 olduğunda , imkansız hale gelir, çünkü 9'dan büyük (10 tabanındaki) sayılar birden fazla karakter alır. Biz iki karakterlik alt dizeleri içine dize bölerek tehlikeye atabilir: "020406081012"
. Şimdi her sonunun endeksi alt dize n
olduğunu n
.
Bu, herhangi bir d
dijit sayısı için genelleştirilebilir . İşte üç basamaklı bir sayı için dizenin "0991021" kısmı için bir açıklama:
Index: ... * 97 98 99*100 101 102*103 ...
* * *
*---+---+---*---+---+---*---+
Character: ... * 0 | 9 | 9 * 1 | 0 | 2 * 1 | ...
*---+---+---*---+---+---*---+
Henüz çözmediyseniz, bir dize veya tam sayı alan bir program / işlev yazacak ve yukarıda belirtilen şekilde kendi kendini yönlendiren dizesini yazacaksınız. Ayrıca, tek basamaklı sayıların, karakterlerin veya tek karakterli dizelerin bir dizisini de çıkarabilirsiniz.
Verilen tamsayı her zaman uzunluğu boyunca pozitif ve bölünebilir olacaktır (örneğin, 126, 3 ile bölünebilir; 4928, 4 ile bölünebilir). Programınız isteğe bağlı olarak büyük bir girdi için teorik olarak çalışmalıdır, ancak bunun dilinizin maksimum tamsayı ve / veya string uzunluğundan daha küçük olduğunu varsayabilirsiniz.
Hâlâ anlamadıysanız, bazı gözlemler: Çıktının uzunluğu her zaman girdinin kendisi olacaktır ve çıktıda görünen sayılar, girişteki hane sayısı ile bölünebilir olacaktır.
Bu kod golf , bayt cinsinden en kısa cevap kazanır.
Test durumları
1 => 1
9 => 123456789
10 => 0204060810
105 => 003006009012015018021024027030033036039042045048051054057060063066069072075078081084087090093096099102105
1004 => 00040008001200160020002400280032003600400044004800520056006000640068007200760080008400880092009601000104010801120116012001240128013201360140014401480152015601600164016801720176018001840188019201960200020402080212021602200224022802320236024002440248025202560260026402680272027602800284028802920296030003040308031203160320032403280332033603400344034803520356036003640368037203760380038403880392039604000404040804120416042004240428043204360440044404480452045604600464046804720476048004840488049204960500050405080512051605200524052805320536054005440548055205560560056405680572057605800584058805920596060006040608061206160620062406280632063606400644064806520656066006640668067206760680068406880692069607000704070807120716072007240728073207360740074407480752075607600764076807720776078007840788079207960800080408080812081608200824082808320836084008440848085208560860086408680872087608800884088808920896090009040908091209160920092409280932093609400944094809520956096009640968097209760980098409880992099610001004