Encontre todas as expressões de quatro 10s
ui desafiado por um problema de C
O problema consiste em encontrar recursivamente quais expressões do formulário ((10 + 10) / (10 + 10)) produzem um número. Por exemplo, ((10 + 10) / (10 + 10)) produz 1. Encontre todas as outras expressões usando os operadores +, -, *, /, com 4 números de 10 e todas as combinações de parênteses para impor ordens de operações.
Fui encaminhado para a notação polonesa reversa, mas isso depende da notação postfix, que não é necessária para resolver esse problema.
Alguns pseudocódigo que tenho é este. Eu sei que usar recursão é a maneira mais fácil de resolver esse problema. Mas não sei como obter todas as combinações.
build([10,10,10,10], Expression) :-
Operator
/ \
[10] [10,10,10]
Operator
/ \
[10] [10,10]
Operator
/ \
[10] [10]
Este é um problema que estou tentando resolver no Prolog, mas o C ++ também é bo