このディレクトリの索引
#  出典 :: C/C++の宿題片付けます 158代目 #362
#  再帰関数を使わず、nの階乗を求めるプログラムを教えて下さい。 
# 

:- dynamic(temp/1).

'再帰関数を使わず、nの階乗を求める'(_n,_nの階乗) :-
        abolish(temp/2),
        asserta(temp(_n,_n)),
        repeat,
        retract(temp(A,B)),
        A_1 is A - 1,
        _nの階乗 is B * A_1,
        asserta(temp(A_1,_nの階乗)),
        A_1 = 1,!.
        


%  これも repeat/0 が再帰述語です。