Давайте создадим систему чисел, в которой наибольшая цифра в 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
, вы можете проверить?