Root digital (juga jumlah digital yang diulang) dari bilangan bulat positif adalah nilai (satu digit) yang diperoleh dengan proses iteratif menjumlahkan digit, pada setiap iterasi menggunakan hasil dari iterasi sebelumnya untuk menghitung jumlah digit. Proses berlanjut hingga nomor satu digit tercapai.
Sebagai contoh, root digital 65536 adalah 7 , karena 6 + 5 + 5 + 3 + 6 = 25 dan 2 + 5 = 7 .
Menyortir semua akar digital tidak masuk akal, karena hanya akan dimulai dengan banyak 1 detik.
Sebagai gantinya, kami akan membuat daftar semua bilangan bulat tunggal beserta akar digitalnya, lalu semua angka dua digit beserta akar digitalnya, lalu rangkap tiga, empat kali lipat dan seterusnya.
Sekarang, untuk masing-masing daftar tersebut, kami akan mengurutkannya sehingga semua bilangan bulat dengan akar digital 1 muncul terlebih dahulu, lalu semua bilangan bulat dengan akar digital 2 dan seterusnya. Penyortiran akan stabil, sehingga daftar bilangan bulat dengan akar digital tertentu harus dalam urutan naik setelah penyortiran.
Akhirnya kami akan menggabungkan daftar ini menjadi satu urutan tunggal. Urutan ini akan mulai dengan semua angka satu digit, lalu semua angka dua digit (diurutkan berdasarkan akar digitalnya), lalu semua angka tiga digit dan seterusnya.
Tantangan:
Ambil bilangan bulat positif n sebagai input, dan hasilkan angka ke - n dalam urutan yang dijelaskan di atas. Anda dapat memilih jika daftar tersebut adalah 0 -indeks dari 1 -indeks.
Urutannya seperti ini:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, 11, 20, 29 ...
72, 81, 90, 99, 100, 109, 118, ...
981, 990, 999, 1000, 1009, 1018, 1027, ...
Kasus uji:
Kasus uji diindeks 1.
n f(n)
9 9
10 10
11 19
40 13
41 22
42 31
43 40
44 49
45 58
600 105
601 114
602 123
603 132
604 141
605 150
4050 1453
4051 1462
4052 1471
4053 1480
4054 1489
4055 1498
Lebih mudah disalin:
n = 9, 10, 11, 40, 41, 42, 43, 44, 45, 600, 601, 602, 603, 604, 605, 4050, 4051, 4052, 4053, 4054, 4055,
f(n) = 9, 10, 19, 13, 22, 31, 40, 49, 58, 105, 114, 123, 132, 141, 150, 1453, 1462, 1471, 1480, 1489, 1498
Klarifikasi:
- Anda tidak boleh menampilkan semua n elemen pertama. Anda hanya akan menampilkan tanggal n .
- Secara teoritis kode harus bekerja untuk semua bilangan bulat hingga 10 ^ 9 , tetapi tidak apa-apa jika habis pada TIO (atau penerjemah lain dengan batasan waktu) untuk input yang lebih besar dari 999 .
- Penjelasan didorong.
Ini kode-golf , jadi kode terpendek di setiap bahasa menang! Jangan berkecil hati dengan solusi lain dalam bahasa yang Anda inginkan untuk bermain golf, bahkan jika mereka lebih pendek dari yang Anda bisa kelola!