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)");'
```