このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/754
#  [1] プログラミング 
#  [2] 1+2+3+....+nがzになる直前の変数nの値を求めよ 
#  

'1+2+3+....+nがzになる直前の変数nの値を求めよ'(_z,_n) :-
        '1+2+3+....+nがzになる直前の変数nの値を求めよ'(0,0,_n),!.

'1+2+3+....+nがzになる直前の変数nの値を求めよ'(_z,_n,S,_n) :-
        _z =< S + _n + 1,!.
'1+2+3+....+nがzになる直前の変数nの値を求めよ'(_z,N_1,S_1,_n) :-
        N_2 is N_1 + 1,
        S_2 is S_1 + N_2,
        '1+2+3+....+nがzになる直前の変数nの値を求めよ'(_z,N_2,S_2,_n).


%
%  S_2 is S_1 + N_2,
%
%  の N_2 が( N_1 ではなく)大事なところであるが、
%  それがまったく表れていない。
%  好ましいプログラムとはいえない。
%