Anda ingin membuat string di mana karakter ( 1-diindeks ) pada indeks n
berada n
. Ketika n
kurang dari 10, ini mudah: "123456789"
. Ketika n
12, misalnya, menjadi tidak mungkin, karena angka lebih besar dari 9 (dalam basis 10) mengambil lebih dari satu karakter. Kita bisa kompromi dengan membagi string menjadi substring dua karakter: "020406081012"
. Sekarang indeks akhir setiap substring n
adalah n
.
Ini dapat digeneralisasi untuk semua d
angka -digit. Berikut ini penjelasan untuk bagian "0991021" dari string untuk angka tiga digit:
Index: ... * 97 98 99*100 101 102*103 ...
* * *
*---+---+---*---+---+---*---+
Character: ... * 0 | 9 | 9 * 1 | 0 | 2 * 1 | ...
*---+---+---*---+---+---*---+
Jika Anda belum mengetahuinya, Anda harus menulis program / fungsi yang mengambil string atau integer dan mengeluarkan string referensial sendiri seperti yang ditentukan di atas. Anda juga dapat menampilkan larik angka tunggal, karakter, atau string karakter tunggal.
Bilangan bulat yang diberikan akan selalu positif dan habis dibagi oleh panjangnya (mis. 126 habis dibagi 3; 4928 habis dibagi 4). Program Anda secara teoritis harus bekerja untuk input besar sembarang, tetapi Anda dapat menganggap itu lebih kecil dari bilangan bulat maksimum dan / atau panjang string bahasa Anda.
Beberapa pengamatan jika Anda masih belum mendapatkannya: Panjang output akan selalu menjadi input itu sendiri, dan angka-angka yang muncul dalam output akan habis dibagi dengan jumlah digit pada input.
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Uji kasus
1 => 1
9 => 123456789
10 => 0204060810
105 => 003006009012015018021024027030033036039042045048051054057060063066069072075078081084087090093096099102105
1004 => 00040008001200160020002400280032003600400044004800520056006000640068007200760080008400880092009601000104010801120116012001240128013201360140014401480152015601600164016801720176018001840188019201960200020402080212021602200224022802320236024002440248025202560260026402680272027602800284028802920296030003040308031203160320032403280332033603400344034803520356036003640368037203760380038403880392039604000404040804120416042004240428043204360440044404480452045604600464046804720476048004840488049204960500050405080512051605200524052805320536054005440548055205560560056405680572057605800584058805920596060006040608061206160620062406280632063606400644064806520656066006640668067206760680068406880692069607000704070807120716072007240728073207360740074407480752075607600764076807720776078007840788079207960800080408080812081608200824082808320836084008440848085208560860086408680872087608800884088808920896090009040908091209160920092409280932093609400944094809520956096009640968097209760980098409880992099610001004