このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/444
#  内容: 
#  [1] 授業単元:C言語 [2] 問題文(含コード&リンク):  
#  
#  50から1まで5個づつ降順に並んだ合計付きの表を表示する。
#
#     50   49   48   47   46  240
#     45   44   43   42   41  215
#     40   39   38   37   36  190
#     35   34   33   32   31  165
#     30   29   28   27   26  140
#     25   24   23   22   21  115
#     20   19   18   17   16   90
#     15   14   13   12   11   65
#     10    9    8    7    6   40
#      5    4    3    2    1   15
#    275  265  255  245  235 1275

'50から1まで5個づつ降順に並んだ合計付きの表を表示する' :-
        findall(N,for(50,N,1),L1),
        '50から1まで5個づつ降順に並んだ合計付きの表を表示する'(L1,[0,0,0,0,0,0]).

'50から1まで5個づつ降順に並んだ合計付きの表を表示する'([],L2) :-
        writef('%5r%5r%5r%5r%5r%5r\n',L2).
'50から1まで5個づつ降順に並んだ合計付きの表を表示する'(L50,L2) :-
        length(L,5),
        append(L5,R,L50),
        sum_plus(L5,L6),
        writef('%5r%5r%5r%5r%5r%5r\n',L6),
        sumlist(L6,L2,L22),
        '50から1まで5個づつ降順に並んだ合計付きの表を表示する'(R,L22).

sum_plus(L,L2) :-
        sum(L,S),
        append(L,[S],L2).

sumlist([],[],[]).
sumlist([M|R1],[N|R2],[S|R3]) :-
        sumlit(R1,R2,R3).