紹介マニアMoinMoin

再帰を多用するのはLisp使いが多いかもしれないが非常に有用です。

このコードは例外処理とかしてません。ただの例ですので。

最大公約数(GCD)の計算

Emacs Lisp

(defun my-gcd (x y)
  (if (= y 0) x
    (my-gcd y (% x y))))
;; 実行
(my-gcd 24 9)

Python

def gcd (x, y):
    if y == 0:
        print x
    else:
        gcd (y, x % y)

gcd (24, 9)

Java

private int getGcd(int x,int y) {
    if (y == 0) {
        return x;
    }
    else {
        return getGcd(y, x % y);
    }
}

この他にも再帰としてはフィボナッチ数列の例や、文字列の反転の例などが記述される事が多いようです。

どれも基本の考え方は同じです。


アルゴリズム CategoryEmacs CategoryJava CategoryPython CategoryUnix

紹介マニアMoinMoin: 再帰 (last edited 2002-10-12 15:00:00 by )