Системный номер Факториал , называемый также factoradic, смешанная система счисления с номером. Факториалы определяют стоимость места числа.
В этой системе крайняя правая цифра может быть 0 или 1, вторая правая цифра может быть 0, 1 или 2 и т. Д. Это означает, что n
цифра факторадического числа может иметь максимальное значение (n + 1)!
.
Например, чтобы преобразовать фактическое число 24201
в десятичное, вы должны сделать это:
2 * 5! = 240
4 * 4! = 96
2 * 3! = 12
0 * 2! = 0
1 * 1! = 1
240 + 96 + 12 + 0 + 1 = 349
Следовательно, фактическое число 24201
является 349
базовым 10
.
Чтобы преобразовать десятичное число ( 349
в качестве примера) в факторическое число, вы должны сделать это:
Возьмите самый большой факториал меньше, чем число. В этом случае это 120
или 5!
.
349 / 5! = 2 r 109
109 / 4! = 4 r 13
13 / 3! = 2 r 1
1 / 2! = 0 r 1
1 / 1! = 1 r 0
Следовательно, 349
база 10
- фактическое число 24201
.
Ваша задача - создать самую короткую программу или функцию, которая преобразует входной номер в другую базу.
Входными данными будет строковое представление неотрицательного целого числа. Фактическому числу будет предшествовать !
(например, !24201
), в то время как десятичному числу ничего не будет предшествовать. Вы можете предположить, что максимальный ввод будет 10! - 1
- 3628799
в десятичной и 987654321
фактической. Это означает, что буквы не будут отображаться при фактическом вводе / выводе.
Программа не должна добавлять !
перед факторическим выводом и может выводить строку или целое число. Ввод может быть в любом разумном формате.
Тестовые случаи:
Input: 1234
Output: 141120
Input: 746
Output: 101010
Input: !54321
Output: 719
Input: !30311
Output: 381
⍴⍵∩'!'
с ,'!'∊⍵
чтобы сохранить характер.