Implemente una función que tome una cadena de cuatro dígitos como su argumento, con cada dígito de 1 ──► 9 (inclusive) con repeticiones permitidas, y devuelva una expresión aritmética que se evalúe al número 24. Si no existe tal solución, devuelva " no existe ninguna solución ".
Reglas:
Solo se permiten los siguientes operadores / funciones: multiplicación, división, suma, resta La división debe usar coma flotante o aritmética racional, etc., para preservar los residuos. No se permite formar números de varios dígitos a partir de los dígitos suministrados. (Entonces, una respuesta de 12 + 12 cuando se da 1, 2, 2 y 1 es incorrecta). El orden de los dígitos cuando se dan no tiene que ser preservado.Entradas de ejemplo:
solve24("4878");
solve24("1234");
solve24("6789");
solve24("1127");
Ejemplos de salidas (cadenas):
(7-8/8)*4
3*1*4*2
(6*8)/(9-7)
(1+7)*(2+1)
solve24
es una función
testString: 'assert(typeof solve24 === "function", "solve24
is a function.");'
- text: solve24("4878")
debe devolver (7-8/8)*4
o 4*(7-8/8)
testString: 'assert(include(answers[0], solve24(testCases[0])), "solve24("4878")
should return (7-8/8)*4
or 4*(7-8/8)
");'
- text: solve24("1234")
debe devolver cualquier arreglo de 1*2*3*4
testString: 'assert(include(answers[1], solve24(testCases[1])), "solve24("1234")
should return any arrangement of 1*2*3*4
");'
- text: solve24("6789")
debe devolver (6*8)/(9-7)
o (8*6)/(9-7)
testString: 'assert(include(answers[2], solve24(testCases[2])), "solve24("6789")
should return (6*8)/(9-7)
or (8*6)/(9-7)
");'
- text: solve24("1127")
debe devolver una permutación de (1+7)*(1*2)
testString: 'assert(include(answers[3], solve24(testCases[3])), "solve24("1127")
should return a permutation of (1+7)*(1*2)
");'
```