Digamos que quiero verificar si un número n = 123 tiene dígitos duplicados. Intenté:¿Cuál es la manera más rápida de verificar si hay dígitos duplicados de un número?
#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";
}
}
¿Hay alguna solución más rápida a este problema?
Actualización
Disculpe por no estar clara. El código anterior se escribió en C++ solo con fines descriptivos. Tengo que resolver este problema en TI-89, con un número de 9 dígitos. Y dado que la limitación de la memoria y la velocidad, estoy buscando la forma más rápida posible.
TI-89 tiene varias condiciones palabra clave:
- Si
- Si ... Entonces
- cuando (
- Para EndFor ...
- tiempo ... EndWhile
- Loop ... EndLoop
- Personalizado ... EndCustom
Gracias,
Chan
Como su solución está limitada a números de tres dígitos, solo haga una tabla hash de los números que tienen dígitos repetidos y verifique si el número está contenido en ella. – aaronasterling
También necesita manejar números con menos de tres dígitos (si esa es una entrada válida). En este momento 'n = 1' será rechazado por tener dígitos duplicados (los ceros a la izquierda). – Thilo
¿En qué idioma de la TI-89 está trabajando? –