Nesta variante do quebra-cabeça de quatro quatros, você deve usar até x
x's
(e nenhum outro número) e um conjunto definido de operações para atingir todos os números de 0 a 100. Se x = 4
você pode usar até quatro 4s
e essa pergunta se torna o clássico quatros quebra-cabeça (exceto que você pode usar até quatro 4s em vez de precisar usar exatamente quatro deles). Nós assumimos 1 < x <= 9
.
Nesta versão, apenas os seguintes operadores são permitidos:
- Adição (
+
), Subtração (-
), Multiplicação (*
), Divisão (/
). Note que esta é uma divisão real, de modo que5/2 = 2.5
. - Exponenciação (por exemplo, 4 ^ 4), pois isso não envolveria símbolos extras se escrito normalmente à mão.
- Você pode criar novos números inteiros concatenando
xs
. Por exemplo, você pode fazer os números inteiros4, 44, 444, 4444
.
Você também pode usar parênteses para agrupar números simplesmente para controlar a ordem de avaliação dos operadores. Você não pode, por exemplo, combinar parênteses com concatenação como em (4/4)(4/4) = (1)(1) = 11
.
Nenhum outro símbolo pode ser usado e a ordem padrão de operações se aplica.
Seu programa deve gerar, considerando um x
intervalo definido e um n
entre 0
e 100
inclusive, uma solução correta para essa entrada, se existir. Caso contrário, seu código deve gerar algo para indicar que não existe essa solução.
Você deve poder executar seu envio até a conclusão em sua máquina para quaisquer valores de entrada x
e n
dentro do intervalo permitido. Isso é código de golfe, então a solução mais curta vence.
Essa antiga pergunta relacionada usa mais operadores (e apenas 4s) e, portanto, todos os números de 0 a 100 são solucionáveis, o que não será verdadeiro para esse desafio.
Entrada e saída
Seu código usa dois números inteiros x
e n
como entrada e deve gerar uma solução (ou uma indicação de que não há solução) em qualquer formato legível por humanos que você achar conveniente. A entrada 4 6
significaria "Usando até quatro 4s, faça o número 6", por exemplo. Então, se a entrada é 4 6
a saída poderia ser (4+4)/4+4
.