Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/11/2014, 15:58
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 3 meses
Puntos: 454
Respuesta: Duda Hacer que no se repita numeros

Hola:

Esto no es general

if(separar[imprimir] != separar[imprimir+2] && separar[imprimir+2] != separar[imprimir+1]&&separar[imprimir] != separar[imprimir+1])

solo sirve para 3 cifras y si el número tiene dos cifras igual sale mal. Para que funcione con n cifras tienes que comparar el primero con todos los demás, el segundo con todos los que le siguen (con el primero ya está comparado de antes), el tercero con todos los que le siguen, etc. Eso se consigue con dos bucles anidados, uno con i desde 0 hasta n-1 y el otro con j desde i+1 hasta n-1, comparando la cifra i con la j. Si cualquiera de ellos es igual, no se imprimer. Intenta impelmentarlo.

Estas cosas int[] separar = new int[leerNumero*9999]; no son elegantes.

Tal cual lo haces, si metes un número de tres cifras, dudo que te funcione bien con las los números de 0 a 99. Por ejemplo, si escribes 123, cuando el bucle de i vaya por el 1 .... ¿qué pasa? ¿comparas todo esto separar[imprimir] != separar[imprimir+2] && separar[imprimir+2] != separar[imprimir+1]&&separar[imprimir] != separar[imprimir+1]? ¿Qué cifras estás comparando?. ¿te saca correctamente por ejemplo, el 10, 12, 13, ....?

Se bueno.
__________________
Apuntes Java
Wiki de Programación