Как стать автором
Обновить

RE: Занимательная задачка

Время на прочтение1 мин
Количество просмотров2.1K
Копаясь в поиске сайта, наткнулся на занимательную задачку и не смог отказать себе в удовольствии потратить 10 минут времени для решения её на полюбившемся мне прологе.

<br>% ((((1?2)?3)?4)?5)?6<br>solve(Formula) :-<br>    Signs = [+, -, *, //],<br>    member(Op1, Signs),<br>    member(Op2, Signs),<br>    member(Op3, Signs),<br>    member(Op4, Signs),<br>    member(Op5, Signs),<br>    A =.. [Op1, 1, 2],<br>    B =.. [Op2, A, 3],<br>    C =.. [Op3, B, 4],<br>    D =.. [Op4, C, 5],<br>    Formula =.. [Op5, D, 6],<br>    35 =:= Formula.<br>


Результат работы кода:

?- findall(F, solve(F), L).
L = [ (1+2+3)*4+5+6, (1+2)*3*4+5-6, 1*2*3*4+5+6].
Теги:
Хабы:
Всего голосов 13: ↑12 и ↓1+11
Комментарии2

Публикации