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.
(http://i.imgur.com/XIloJzj.jpg)
¡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:
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
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.
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();