Reto - Descubre el valor oculto

Iniciado por Yuki, Julio 01, 2017, 08:07:03 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 01, 2017, 08:07:03 AM Ultima modificación: Julio 01, 2017, 08:31:36 AM por Yuki
El día de ayer un amigo me enseñó una muy interesante cuestión matemática. El reto que les propongo es escribir y postear un código que les resuelva este acertijo. Pueden usar el lenguaje que quieran.


¡Suerte!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
A=2; B=3; C=6; D=8
ABCD = 2368

Es correcto, pero el chiste es programar  :'(

Se que esta muy pegado al acertijo y no es dinámico, pero es la única forma donde encontré como resolverlo sin meterme en muchos líos.  ;D

Amo los juegos del Profesor Layton

Cramel:
Código: Text
Var cmd:Consola

    Crear cmd
    Var a, b, c, d:Entero
    Const fijo = 4
    Var i, j:Entero

    i = 1
    j = 1

    Repetir
        a = i
        cmd.escribirLinea("a tomo el valor de: " + EntCad(a))
        d = a * fijo
        cmd.escribirLinea("d tomo el valor de: " + EntCad(d))
        Repetir
            c = j
            cmd.escribirLinea("c tomo el valor de: " + EntCad(c))
            Si ( (a+c) = d ) Entonces
                Salir Repetir
            FinSi
            j = j + 1
        MientrasQue j <= d
        b = (c/2)
        cmd.escribirLinea("b tomo el valor de: " + EntCad(b))

        Si ( ((a*b) = c) And ((c-b) = b) ) Entonces
            Salir Repetir
        FinSi

        cmd.escribirLinea("De nuevo" + CRLF)
        i = i + 1
    MientrasQue i <= 9
   
    cmd.establecerTitulo("Resultado final")
    cmd.escribirLinea("")
    cmd.escribirLinea("a: " + EntCad(a) + CRLF + "b: " + EntCad(b) + CRLF + "c: " + EntCad(c) + CRLF + "d: " + EntCad(d))
    cmd.pausarConsola()
Destruir cmd

Julio 03, 2017, 06:41:53 PM #3 Ultima modificación: Julio 03, 2017, 07:38:43 PM por rush
Hola, creo que primero tuve que despejar unas ecuaciones jajaja, aunque creo que se puede resolver por álgebra lineal con alguna matriz, pero no me quise meter tanto, esta es mi solución aunque creo que es un poco mala ya que no es dinámica y peor aun mi while jaja.

Código: c#
int a=0, b=0, c=0, d=0, i=0;
            int aux;
            bool case1= false, case2=false, case3=false, case4=false;
            Console.WriteLine("antes while");
            while(1 > 0)
            {
                i++;
                a = i;
                d = 4 * a;
                c = d - a;
                b = c / a;
                aux = a + c;
                if(aux == d)
                {
                    case1 = true;
                }
                aux = a * b;
                if(aux == c)
                {
                    case2 = true;
                }
                aux = c - b;
                if (aux == b)
                {
                    case3 = true;
                }
                aux = a * 4;
                if(aux == d)
                {
                    case4 = true;
                }

                if(case1 && case2 && case3 && case4)
                {
                    break;
                }
            }
            Console.WriteLine("Iteraciones: " + i);
            Console.Write("A: " + a);
            Console.Write("B: " + b);
            Console.Write("C: " + c);
            Console.Write("D: " + d);
            Console.ReadKey();
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta