Системний номер Факторіал , званий також 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
⍴⍵∩'!'
з ,'!'∊⍵
щоб зберегти характер.