Translate

Reto Peso Equivalente en Java




Hace unos 10 minutos he visto este reto en https://www.aceptaelreto.com, me pareció interesante hacerlo.

Antes de ser ese dispositivo de comunicación tan extendido, se entendía por móvil una estructura hecha con alambres y cuerdas de las que colgaban figuras coloridas, y que se colocaban sobre las cunas de los bebés para estimularles y entretenerles.
La figura representa un móvil simple. Tiene un único alambre colgado de una cuerda, con un objeto a cada lado. En realidad se puede ver como una "balanza" con el punto de apoyo en el sitio donde la cuerda está unida al alambre. Según el principio de la palanca, sabemos que está en equilibrio si el producto del peso de los objetos por sus distancias al punto de apoyo son iguales. Es decir si consideramos pi como el peso colgado en el lado izquierdo, pd el peso del lado derecho, y di la distancia desde el peso izquierdo a la cuerda y dd de la cuerda al peso derecho, podremos decir que el móvil está en equilibrio si se cumple que pi × di = pd × dd.
En móviles más complejos, cada peso puede ser sustituido por un "submóvil". En este caso se considera el peso del submóvil como la suma de los pesos de todos sus objetos, despreciando la cuerda y los alambres. Y consideraremos que está balanceado si pi × di = pd × dd y, además los submóviles de la izquierda y los de la derecha estan a su vez balanceados.
En ese caso no es tan trivial averiguar si está o no balanceado, por lo que te pedimos que nos escribas un programa que, dada una descripción de un móvil como entrada, determine si está o no en equilibrio.
La entrada finalizará con un móvil especial, 0 0 0 0, indicando que no tiene pesos ni distancias y, por tanto, no hay móvil.



Aquí os dejo el código:

        try {
            String cadena;
            int numero1 = 0;
            int numero2 = 0;
            int mitad;
            int modulo;
            int suma = 0;
            Scanner sca = new Scanner(System.in);
            System.out.println("Ponme una serie de numeros para ver si estan equiparados");
            cadena = sca.nextLine();
            String[] numeros = cadena.split(" ");
            if (numeros.length % 2 != 0) {
                throw new Exception("");
            }
            mitad = numeros.length / 2;

            for (int i = 0; i < numeros.length; i++) {
                if (i < mitad) {
                    numero1 = numero1 + Integer.parseInt(numeros[i]);
                } else {
                    numero2 = numero2 + Integer.parseInt(numeros[i]);
                }
            }
          if (numero1==numero2&&numero1==0){
              System.out.println("FIN");
              throw new Exception("");
          }
            
            if(numero1==numero2){
                System.out.println("SI");
            }else{
                System.out.println("NO");
            }

        } catch (Exception ex) {
            System.out.println("Debes de poner una cantidad equivalente");
        }

Espero que hayáis aprendido algo, que estudiéis el código y hasta la próxima! Chao

No hay comentarios:

Publicar un comentario

Buscar en este blog

Popular Posts

Follow by Email