Java - Duda con un ejercicio.

   
Vista:

Duda con un ejercicio.

Publicado por julio (1 intervención) el 11/11/2014 15:38:22
Muy buenas a todos, y gracias de antemano. He tenido que hacer a lo largo de un tiempo una serie de ejercicios en java, donde he podido resolver todos menos uno, que es este, espero que alguien me pueda ayudar.

"Crear una clase que solicite por pantalla un número y sea capaz de generar por pantalla todos
los números menores que el introducido que no tengan ninguna cifra repetida."

Por ejemplo si das el 1000, que te de los números menores que 1000 los cuales no contienen ninguna cifra repetida como el caso de 828.
Muchas gracias, y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Fernando

Duda con un ejercicio.

Publicado por Fernando (82 intervenciones) el 11/11/2014 16:23:27
creo que tienes que hacer un un metodo que reciva el valor ingresado por el usuario y tenga un ciclo quizas un for, y cada numero sea validado, seguramente en potro metodo, este metodo recivira el numero generado por el for y validara sus cifras si son iguales , para validar las cifras lo que tienes que hacer es hacer una division entre 10 , de esta division tomaras el residuo no el resultado ese residuo es el valor de la primera cifra de derecha a izquierda,, luego estos numeros los validas que no sean iguales y los que no repitan cifra lo guardas en un arreglo. te hare un ejemplo imagino que las pantallas las sabes hacer asi que en un post mas abajo te mostrare las clases que posiblemente necesites hacer no se si entendistes lo que te explico el post te lo mando mas tarde ,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con un ejercicio.

Publicado por Andrés (231 intervenciones) el 12/11/2014 04:38:01
public class DistinctDigitsInNumber {

public static boolean check(int number) {

int[] digits = new int[10];

String strNumber = Integer.toString(number);

for(int i=0 ; i < strNumber.length(); i++) {

int digit = Integer.parseInt(strNumber.substring(i,i+1));

if(++digits[digit]>1) {

return false;

}
}

return true;

}

public static void main(String[] args) {

int number= 821;

for(int i=0 ; i <number ;i++) {

if(check(i)) {

System.out.println(i);

}
}

}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con un ejercicio.

Publicado por Alfonso (6 intervenciones) el 13/11/2014 01:28:51
Andrés, muy ingeniosa la solución
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar