InstruçÔes

Jogo dos 24

O jogo do 24 testa a aritmĂ©tica mental de uma pessoa. O objetivo do jogo Ă© organizar quatro nĂșmeros de maneira que, quando avaliados, o resultado seja 24

O que fazer:

Implemente uma função que receba uma string de quatro algarismos como argumento, com cada algarismo de 1 a 9 (inclusive), com repetiçÔes permitidas, e que retorne uma expressĂŁo aritmĂ©tica que avalie como chegar ao nĂșmero 24. Se essa solução nĂŁo existir, retorne "no solution exists". Regras: <ul> <li> Only the following operators/functions are allowed: multiplication, division, addition, subtraction. </li> <li> Division should use floating point or rational arithmetic, etc, to preserve remainders. </li> <li> Forming multiple digit numbers from the supplied digits is disallowed. (So an answer of 12+12 when given 1, 2, 2, and 1 is wrong). </li> <li> The order of the digits when given does not have to be preserved. </li> </ul> | Example input | Example output | | ----------------------------- | ------------------------- | | <code>solve24("4878");</code> | <code>(7-8/8)\*4</code> | | <code>solve24("1234");</code> | <code>3\*1\*4\*2</code> | | <code>solve24("6789");</code> | <code>(6\*8)/(9-7)</code> | | <code>solve24("1127");</code> | <code>(1+7)\*(2+1)</code> |

Critérios de Aceitação:

Testes:

  • `solve24` deve ser uma função.
  • `solve24("4878")` deve retornar `(7-8/8)*4` ou `4*(7-8/8)` ou uma string vĂĄlida semelhante
  • `solve24("1234")` deve retornar `1*2*3*4` ou uma string vĂĄlida semelhante
  • `solve24("6789")` deve retornar `(6*8)/(9-7)`, `(8*6)/(9-7)` ou uma string vĂĄlida semelhante
  • `solve24("1127")` deve retornar `(1+7)*(1+2)` ou uma string vĂĄlida semelhante

Console