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

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.