このディレクトリの索引
#  
#  お題:n番目からn+9番目のフィボナッチ数の総和を求めよ。
#  

'n番目からn+9番目のフィボナッチ数の総和'(Nth,_フィボナッチ数の総和) :-
        'n番目からn+9番目のフィボナッチ数ならび'(Nth,_フィボナッチ数ならび),
        sum_list(_フィボナッチ数ならび,_フィボナッチ数の総和),!.

'n番目からn+9番目のフィボナッチ数ならび'(Nth,_フィボナッチ数ならび) :-
        findall(X,'n番目からn+9番目のフィボナッチ数'(Nth,X),_フィボナッチ数ならび).

'n番目からn+9番目のフィボナッチ数'(Nth_1,X) :-
        Nth_9 is Nth_1 + 9,
        'n番目からn+9番目のフィボナッチ数'(0,0,1,Nth_1,Nth_9,X).

'n番目からn+9番目のフィボナッチ数'(Nth,M,N,Nth_1,Nth_9,M) :-
        between(Nth_1,Nth_9,Nth).
'n番目からn+9番目のフィボナッチ数'(Nth,M,N,Nth_1,Nth_9,X) :-
        M2 is M + N,
        Nth_2 is Nth + 1,
        Nth_2 =< Nth_9,
        'n番目からn+9番目のフィボナッチ数'(Nth_2,N,M2,Nth_1,Nth_9,X).