このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/220
#  1-3+5-7•••っていうのを20回繰り返すというプログラムを教えて下さい。 
#  あれを20回繰り返すと答えは-20になります。それで式もちゃんと表示させなくては 
#  いけないんです・・・つまり1-3+5-7•••=-20ってかんじです。出来れば<stdio.h>でfor 
#  とifで組んでください。 
# 
# 

'1-3+5-7・・・っていうのを20回繰り返した合計値'(_合計値) :-
        '1-3+5-7・・・っていうのを20回繰り返した合計値'([],1,L),
        sum(L,_合計値),
        符号に注意しながら表示(L,_合計値).

'1-3+5-7・・・っていうのを20回繰り返した合計値'(Ln,_,[]) :-
        length(Ln,20),!.
'1-3+5-7・・・っていうのを20回繰り返した合計値'(Ln,M,[M|R]) :-
        M < 0,
        M2 is abs(M) + 2,
        '1-3+5-7・・・っていうのを20回繰り返した合計値'([_|Ln],M2,R).
'1-3+5-7・・・っていうのを20回繰り返した合計値'(Ln,M,[M|R]) :-
        M > 0,
        M2 is (abs(M) + 2) * (-1),
        '1-3+5-7・・・っていうのを20回繰り返した合計値'([_|Ln],M2,R).

符号に注意しながら表示([],_合計値) :-
        writef(' = %t\n',[_合計値]).
符号に注意しながら表示([N|R],_合計値) :-
        N < 0,
        writef('%t',[N]),
        符号に注意しながら表示(R,_合計値).
符号に注意しながら表示([N|R],_合計値) :-
        N > 0,
        writef('+%t',[N]),
        符号に注意しながら表示(R,_合計値).