Mio fratellino di quindici anni sta iniziando la programmazione, e ha scritto un piccolo programma pulito che emette tutte le combinazioni di lettere e numeri di sei o meno cifre. Il suo codice era un ciclo annidato a sestupla che aggiornava gli elementi di un array di char a sei livelli. Sembrava male, ma era certamente veloce! Gli ho mostrato come fare un conteggio semplice e convertire quei numeri in base 36.Come posso contare su una base numerica diversa in C++?
Il problema più grande è che il mio codice era molto più lento del suo, a causa della divisione che stavo facendo. C'è un modo in cui posso semplicemente assumere la base 36 e produrre un conteggio da 1 a 36^6?
Idealmente, sto cercando di fare qualcosa di simile
[base 36]
for(int i = 0; i < 1000000; i++)
SaveForLaterFileOutput(i);
Si sta confondendo il valore con la presentazione. Il conteggio puro non è un concetto a cui può essere assegnata una radice. Una versione refactored la soluzione di tuo fratello potrebbe essere il migliore dei due! –
Non esiste un costrutto base36 incorporato nella lingua. Tuttavia, non hai bisogno della divisione per fare ciò che vuoi. – driis