@ Программист Я отредактировал ответ с дополнительной информацией, посмотрите!
я была проблема с 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 ++ также хорош.