このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/344
#  [1] 授業単元: プログラミング基礎 
#  [2] 問題文(含コード&リンク): 3問 http://ime.nu/ideone.com/kXOZ8 
#  
#  1)帰納を使い、フィボナッチ数を表示するプログラミングを作れ。
#  例 0,1,1,2,3,5,8,13...
#   
#  2)帰納を使い、インプットした数字nが偶数の場合は、
#  1*3*5*7...n の計算式を行いその答えを表示するプログラミングを作れ。
#  ただし、nが奇数の場合は、-1と表示させる。
#   
#  3)帰納を使い、最大公約数を求めよ。

'帰納を使い、フィボナッチ数を表示する'(X) :-
        '帰納を使い、フィボナッチ数を表示する'(1,X).
        writef('%t\n',[X]).

'帰納を使い、フィボナッチ数を表示する'(N,X) :-
        '帰納を使い、フィボナッチ数を得る'(N,X).
'帰納を使い、フィボナッチ数を表示する'(N,X) :-
        N_2 is N + 1,
        '帰納を使い、フィボナッチ数を表示する'(N_2,X).
        
'帰納を使い、フィボナッチ数を表示する'(X) :-
        X_2 is X + 1,
        帰納を使い、フィボナッチ数を得る(X_2).

'帰納を使い、フィボナッチ数を得る'(0,0).
'帰納を使い、フィボナッチ数を得る'(1,0).
'帰納を使い、フィボナッチ数を得る'(2,1).
'帰納を使い、フィボナッチ数を得る'(N,X) :-
        N > 2,
        N_1 is N - 1,
        N_2 is N - 2,
        '帰納を使い、フィボナッチ数を得る'(N_1,X_1),
        '帰納を使い、フィボナッチ数を得る'(N_2,X_2),
        X is X_1 + X_2,!.