このディレクトリの索引

    http://pc12.2ch.net/test/read.cgi/tech/1136994325/925
    # 123456789の順に数字を並べて,数字の間に+,−を補うことで式を作り, その値が100になる# 組み合わせをすべて求め,その式を出力するプログラムを作成しなさい.
    # お願いします

    t201 :-
        findall(Q,t201(Q),L),
        member(A,L),
        write_formatted('%t\n',[A]),
        fail.
    t201.

    t201(Q) :-
        符号を含むならびの生成(['1','2','3','4','5','6','7','8','9'],L),
        atom_chars(S,L),
        atom_to_term(S,Q,_),
        100 is Q.

    符号を含むならびの生成([A],[A]).
    符号を含むならびの生成([A|R1],[A|R2]) :-
        符号を含むならびの生成(R1,R2).
    符号を含むならびの生成([A|R1],[A,'+'|R2]) :-
        符号を含むならびの生成(R1,R2).
    符号を含むならびの生成([A|R1],[A,'-'|R2]) :-
        符号を含むならびの生成(R1,R2).