Vamos a crear un sistema de números donde el dígito más grande en el enésimo valor posicional (contando de derecha a izquierda) de una longitud de número m siempre es igual a m - n + 1. Para dar un ejemplo, el número más grande de 5 dígitos expresable en este sistema está escrito 12345. Además del número de dígitos disponibles para ser usados en un lugar particular que está restringido, todos los demás incrementos son estándar. Es decir, cuando un dígito debe superar su límite de dígitos, agregamos uno al siguiente dígito.
Así es como se representaría el conteo en este sistema:
1; 10; 11; 12; 100; 101; 102; 103; 110; 111; 112; 113; 120; 121; 122; 123; 1000; 1001 ...
Su tarea es escribir una función que tome un número base 10 estándar y lo convierta a mi sistema de numeración.
El código más corto es preferible. Bonne Chance!
** Si necesita dígitos después del 9 (debería), puede optar por usar letras, o puede devolver un número de 2 dígitos como elemento de una lista.
Casos de prueba
10 -> 111
20 -> 1003
30 -> 1023
50 -> 1123
100 -> 10035
23116 -> 1234567
21977356 -> 123456789A
El último caso puede ser increíblemente lento para ejecutarse dependiendo de cómo lo implementó. No necesita ejecutarlo si tarda demasiado o usa demasiada memoria. Sin embargo, tenga en cuenta que existen formas de ejecutarlo rápidamente y con poca memoria.
100 -> 10035
lugar de 100 -> 10033
, ¿puedes verificar?