Дозволяє створити систему чисел, де найбільша цифра у значенні n-го місця (рахуючи справа наліво) довжини числа m завжди дорівнює m - n + 1. Навести приклад найбільшого 5-значного числа, виражаемого в цій системі написано 12345. Окрім кількості доступних цифр для використання в певному місці, яка обмежена, всі інші збільшення є стандартними. А саме, коли цифра повинна перевищувати її межу цифр, ми додаємо її до наступної цифри.
Ось як було б представлено підрахунок у цій системі:
1; 10; 11; 12; 100; 101; 102; 103; 110; 111; 112; 113; 120; 121; 122; 123; 1000; 1001 ...
Ваше завдання - написати функцію, яка приймає стандартне базове число 10 і перетворить її в мою систему нумерації.
Краще коротший код. Шанс Бонне!
** Якщо вам знадобляться цифри після 9 (слід), ви можете використовувати літери, або ви можете повернути двозначний номер як елемент списку.
Випробування
10 -> 111
20 -> 1003
30 -> 1023
50 -> 1123
100 -> 10035
23116 -> 1234567
21977356 -> 123456789A
Останній випадок може бути неймовірно повільним, залежно від способу реалізації. Не потрібно його запускати, якщо це забирає занадто багато часу або використовує занадто багато пам'яті. Однак зауважте, що існують способи, щоб він швидко запускався та використовував мало пам'яті.
100 -> 10035
замість цього 100 -> 10033
, чи можете ви перевірити?