Consente di creare un sistema di numeri in cui la cifra più grande nell'ennesimo valore del posto (contando da destra a sinistra) di una lunghezza numerica m è sempre uguale a m - n + 1. Per dare un esempio il numero più grande di 5 cifre esprimibile in questo sistema è scritto 12345. A parte il numero di cifre disponibili da utilizzare in un determinato luogo con restrizioni, tutte le altre incrementazioni sono standard. Vale a dire quando una cifra deve superare il limite di cifre, ne aggiungiamo una alla cifra successiva.
Ecco come sarebbe rappresentato il conteggio in questo sistema:
1; 10; 11; 12; 100; 101; 102; 103; 110; 111; 112; 113; 120; 121; 122; 123; 1000; 1001 ...
Il tuo compito è quello di scrivere una funzione che accetta un numero base 10 standard e lo converte nel mio sistema di numerazione.
È preferibile un codice più breve. Bonne Chance!
** Se hai bisogno di cifre dopo 9 (dovresti) puoi scegliere di usare lettere, oppure puoi restituire un numero di 2 cifre come elemento di un elenco.
Casi test
10 -> 111
20 -> 1003
30 -> 1023
50 -> 1123
100 -> 10035
23116 -> 1234567
21977356 -> 123456789A
L'ultimo caso potrebbe essere incredibilmente lento a seconda della modalità di implementazione. Non è necessario eseguirlo se impiega troppo tempo o utilizza troppa memoria. Tuttavia, ci sono modi per farlo funzionare rapidamente e usando poca memoria.
100 -> 10035
piuttosto che 100 -> 10033
, puoi verificarlo?