Encontrar numero faltante en el array

publicado por: Anonymous

Tengo que encontrar que números del 1 al 10 faltan en el array llamado _valores, hice otro array para comparar, pero no logro hacer que diga cuales faltan.

public static void main(String[] args) {

    int [] _valores = {5, 8, 4, 6, 2, 9};

    int [] _total = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    int numerosfaltantes = 0; 

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

        numerosfaltantes = _valores[i];

        for (int j = 0; j < _total.length; j++) {

            if (numerosfaltantes != _total[j] ) {

                numerosfaltantes = _valores[i];

                System.out.println(""+numerosfaltantes);    
            }
        }
    }
}

solución

Te dejo una solución espero que te sirva!

public class NumerosFaltantes {

    public static int [] domain = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    public static void printNumerosFaltantes(int[] values) {
        for (int i = 0; i < domain.length; i++) {
            boolean isNumeroFaltante = true;

            for (int j = 0; j < values.length; j++) {
                if (values[j] == domain[i]) {
                    isNumeroFaltante = false;
                }
            }

            if (isNumeroFaltante) {
                System.out.println("Falta el número " + domain[i]);
            }
        }
    }


    public static void main(String[] args) {
        // TODO code application logic here
        int[] values = {5, 8, 4, 6, 2, 9};
        NumerosFaltantes.printNumerosFaltantes(values);
    }
}

Debes recorrer todo el dominio de valores contra el array a buscar los numeros faltantes. Es decir, cada valor posible entre 1 y 10 debes buscarlo en tu array _valores por lo tanto los for deben ser al reves. la variable booleana isNumeroFaltante asume que el numero no se encuentra en el array y en caso de encontrarlo setea el valor en falso. Cuando se termina de recorrer el array de valores si no se encontro el numero se imprime el numero faltante.

Espero que se entienda y que te sirva.

Saludos!

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *