Memasukkan:
Bilangan bulat positif n yang terdiri dari angka dalam kisaran 0-9 .
Tantangan:
Jika d adalah digit tertinggi dalam bilangan bulat, anggap pangkalan angka tersebut adalah d +1 . Misalnya jika bilangan bulat adalah 1256 maka Anda harus menganggap itu dalam basis-7 , jika itu 10110 maka Anda harus menganggap itu basis-2 (biner), dan jika 159 maka itu adalah desimal.
Sekarang, lakukan hal berikut sampai Anda, 1: mencapai integer basis-10 , atau 2: mencapai integer satu digit.
- Konversikan bilangan bulat dari basis- (d + 1) ke basis-10
- Temukan basis dari integer baru ini (sekali lagi, base- (d + 1) di mana d adalah digit tertinggi dalam angka baru)
- Lanjutkan ke langkah 1 .
Contoh:
Asumsikan inputnya adalah n = 413574 . Digit tertinggi d = 7 , jadi ini adalah base-8 (oktal). Ubah ini menjadi desimal dan dapatkan 137084 . Digit tertinggi d = 8 , jadi ini adalah base-9 . Ubah ini menjadi desimal dan dapatkan 83911 . Digit tertinggi adalah 9 , jadi ini adalah angka desimal dan kami berhenti. Outputnya adalah 83911 .
Asumsikan inputnya adalah n = 13552 . Digit tertinggi adalah d = 5 , jadi ini adalah basis-6 . Ubah ini menjadi desimal dan dapatkan 2156 . Digit tertinggi d = 6 , jadi ini adalah base-7 . Ubah ini menjadi desimal dan dapatkan 776 . Digit tertinggi adalah d = 7 , jadi ini adalah basis-8 . Konversikan ke desimal dan dapatkan 510 . Digit tertinggi adalah d = 5 jadi ini adalah basis-6 . Ubah ini menjadi desimal dan dapatkan 186 . Digit tertinggi adalah 8 , jadi ini adalah base-9 . Ubah ini menjadi desimal dan dapatkan 159. Digit tertinggi adalah 9 , jadi ini adalah angka desimal dan kami berhenti. Outputnya adalah 159 .
Asumsikan inputnya adalah n = 17 . Ini akan memberi kita 15 , lalu 11 , lalu 3 , yang akan kita hasilkan karena itu satu digit.
Kasus uji:
5
5
17
3
999
999
87654321 (base-9 -> 42374116 in decimal -> base-7 -> 90419978 in decimal)
9041998
41253 (5505 -> 1265 -> 488 -> 404 -> 104 -> 29)
29
Catatan:
- Aturan standar tentang I / O, celah dll. Anda dapat mengambil input sebagai string
- Penjelasan didorong
- Anda dapat menggunakan perintah konversi konversi bawaan
- Solusi yang tidak menggunakan fungsi konversi basis bawaan bahasa (jika ada) diterima, bahkan jika mereka berakhir lebih lama daripada pendekatan yang jelas menggunakan fungsi builtin.
Rupanya, ini adalah OEIS A091047 .