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

questionAnswers(1)

yourAnswerToTheQuestion