@ Программист Я отредактировал ответ с дополнительной информацией, посмотрите!

я была проблема с CS.

Задача состоит в том, чтобы рекурсивно определить, какие выражения вида ((10 + 10) / (10 + 10)) производят число. Например, ((10 + 10) / (10 + 10)) выдает 1. Найдите все другие выражения, используя операторы +, -, *, /, с 4 числами по 10 и всеми комбинациями скобок для обеспечения порядка операций.

Меня отсылали к обратной польской нотации, но она опирается на постфиксную нотацию, которая не требуется для решения этой проблемы.

Какой-то псевдокод у меня такой. Я знаю, что использование рекурсии - самый простой способ решить эту проблему. Но не знаю, как убедиться, что я получу все комбинации.

build([10,10,10,10], Expression) :-
      Operator
     /       \
   [10]     [10,10,10]
             Operator
              /     \
           [10]     [10,10]
                    Operator
                     /    \
                   [10]   [10]

Это проблема, которую я пытаюсь решить в Прологе, но C ++ также хорош.

Ответы на вопрос(1)

Ваш ответ на вопрос