Implemente uma função que tenha uma sequência de quatro dígitos como argumento, com cada dígito de 1 ──► 9 (inclusive) com repetições permitidas e retorne uma expressão aritmética que avalie o número 24. Se essa solução não existir, retorne " nenhuma solução existe. "
Regras:
Somente os seguintes operadores / funções são permitidos: multiplicação, divisão, adição, subtração A divisão deve usar ponto flutuante ou aritmética racional, etc, para preservar os remanescentes. Formar vários números de dígitos a partir dos dígitos fornecidos não é permitido. (Então, uma resposta de 12 + 12 quando dado 1, 2, 2 e 1 está errado). A ordem dos dígitos quando fornecidos não precisa ser preservada.Exemplo de entradas:
solve24("4878");
solve24("1234");
solve24("6789");
solve24("1127");
Exemplo de saídas (strings):
(7-8/8)*4
3*1*4*2
(6*8)/(9-7)
(1+7)*(2+1)
solve24
é uma função.
testString: 'assert(typeof solve24 === "function", "solve24
is a function.");'
- text: solve24("4878")
deve retornar (7-8/8)*4
ou 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")
deve retornar qualquer arranjo 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")
deve retornar (6*8)/(9-7)
ou (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")
deve retornar uma permutação de (1+7)*(1*2)
testString: 'assert(include(answers[3], solve24(testCases[3])), "solve24("1127")
should return a permutation of (1+7)*(1*2)
");'
```