Diciamo che voglio controllare se un numero n = 123 ha cifre duplicate. Ho provato:Qual è il modo più veloce per verificare le cifre duplicate di un numero?
#include <iostream>
using namespace std;
int main() {
int n = 123;
int d1 = n % 10;
int d2 = (n/10) % 10;
int d3 = (n/100) % 10;
if(d1 != d2 && d1 != d3 && d2 != d3) {
cout << n << " does not have duplicate digits.\n";
}
}
Esiste una soluzione più rapida a questo problema?
Aggiornamento
Mi dispiace per non essere chiaro. Il codice sopra è stato scritto in C++ solo a scopo descrittivo. Devo risolvere questo problema in TI-89, con un numero di 9 cifre. E dal limite della memoria e della velocità, sto cercando il modo più veloce possibile.
TI-89 ha solo diversi per condizione Parole chiave:
- Se
- If ... Then
- quando (
- Per ... EndFor
- Mentre ... EndWhile
- Loop ... EndLoop
- Personalizzato ... EndCustom
Grazie,
Chan
Poiché la soluzione è limitata a numeri a tre cifre, è sufficiente creare una tabella hash dei numeri con cifre ripetute e controllare se il numero è contenuto. – aaronasterling
È inoltre necessario gestire i numeri con meno di tre cifre (se questo è un input valido). Al momento 'n = 1' sarà rifiutato come se avesse cifre duplicate (gli zeri iniziali). – Thilo
Su quale lingua della TI-89 state lavorando? –