Копаясь в поиске сайта, наткнулся на занимательную задачку и не смог отказать себе в удовольствии потратить 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].