練習問題 : 再帰関数
1.
よくしられた関数にフィボナッチ関数と呼ばれるものがあります。
fib(0) = 0 fib(1) = 1 fib(n+2) = fib(n+1) + fib(n) ; for n + 2 > 1
として定義されるものです。
素直に上の再帰的定義を Scheme の program として実現せよ。
素直に上の再帰的定義にしたがって
fib
を記述した場合、 同じ計算をなんども繰り返すことになる。 同じ計算を何度も繰り返すことがないような、 末尾再帰を用いた
fib2
を書け。
解答例
2.
2つの自然数
a, b
の最大公約数を求める program を書け(関数名 mygcd)(Scheme の
lcm, gcd
は 用いないこと)。
解答例
99.9.29/
Tomio KAMADA
: kamada@cs.kobe-u.ac.jp