このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1296387672/4
#  [1] 授業単元: C言語演習 
#  [2] 問題文(含コード&リンク): http://ime.nu/img406.imageshack.us/img406/7043/toi8.jpg 
#  
#  問題8. (8点)ワクに埋め込まれた各行の数の和が等しくなるという。
#  a,b,cに入る数の組み合わせを、すべて求めるプログラムを作成しなさい。
#  ただし、a,b,cの数は1桁の異なる数とする。
#  
#  4,9,a -> s1
#  3,b,7 -> s2
#  c,1,6 -> s3

ワクに埋め込まれた各行の数の和を等しくする(_1行目,_2行目,_3行目,_解決済みならび) :-
        ワクに埋め込まれた各行の数の和を等しくする([_1行目,_2行目,_3行目],[],_解決済みならび,_合計).

ワクに埋め込まれた各行の数の和を等しくする([],_,[],_).
ワクに埋め込まれた各行の数の和を等しくする([L|R],_解決済みならび1,[_数|_解決済みならび],_合計) :-
        行の変数(L,_数),
        append(_,[_数|_],[0,1,2,3,4,5,6,7,8,9]),
        \+(append(_,[_数|_],_解決済みならび1),
        加算(L,_合計),
        ワクに埋め込まれた各行の数の和を等しくする(R,[_数|_解決済みならび1],_解決済みならび,_合計).

行の変数([_変数|_],_変数) :-
        var(_変数),!.
行の変数([_|R],_変数) :-
        行の変数(R,_変数).