Входные данные:
Положительное целое число n, состоящее из цифр в диапазоне 0-9 .
Вызов:
Если d является старшей цифрой в целом числе, предположим, что основание числа d + 1 . Например, если целое число равно 1256, то вы должны предположить, что оно находится в base-7 , если это 10110, то вы должны предположить, что это base-2 (двоичное), а если это 159, то это десятичное число.
Теперь делайте следующее до тех пор, пока не достигнете 1: достичь целого числа от 10 до 10 или 2 2: достичь целого числа из одной цифры.
- Преобразовать целое число из base- (d + 1) в base-10
- Найдите основание этого нового целого числа (опять же, base- (d + 1), где d - самая большая цифра в новом числе)
- Переходите к шагу 1 .
Примеры:
Предположим, что ввод n = 413574 . Наибольшая цифра d = 7 , так что это основание-8 (восьмеричное). Переведите это в десятичное число и получите 137084 . Наибольшая цифра d = 8 , так что это основание-9 . Переведите это в десятичное число и получите 83911 . Наибольшая цифра - 9 , так что это десятичное число, и мы остановимся. Выход должен быть 83911 .
Предположим, что ввод n = 13552 . Наибольшая цифра d = 5 , так что это base-6 . Переведите это в десятичное число и получите 2156 . Наибольшая цифра d = 6 , так что это основание-7 . Переведите это в десятичное число и получите 776 . Наибольшая цифра d = 7 , так что это основание-8 . Переведите это в десятичное число и получите 510 . Наибольшая цифра d = 5, так что это base-6 . Переведите это в десятичное число и получите 186 . Самая высокая цифра - 8 , поэтому это база-9 . Переведите это в десятичное число и получите 159 . Самая высокая цифра 9 , так что это десятичное число, и мы остановимся. Выход должен быть 159 .
Предположим, что ввод n = 17 . Это даст нам 15 , затем 11 , затем 3 , которые мы выведем, так как это одна цифра.
Тестовые случаи:
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
Заметки:
- Стандартные правила, касающиеся ввода / вывода, лазеек и т. Д. Вы можете принять ввод как строку
- Пояснения приветствуются
- Вы можете использовать встроенные команды преобразования базы
- Решения, в которых не используются встроенные функции преобразования базовых кодов языка (если они существуют), приветствуются, даже если они оказываются намного дольше, чем очевидный подход с использованием встроенных функций.
Видимо, это OEIS A091047 .