2010-05-21

あれ?

階乗計算

n! =

n * (n-1)! (n>0の場合)

1 (n=0の場合

をそのままプログラムにしたら末尾再帰最適化はできないよな?

  • うん。できない。末尾再帰の最適化ができる形式の階乗は、 n! = fact_iter(n,1)fact_iter(0, acc) = accfact_iter(n, acc) = fact_iter(n-1, acc*n) だ。 schemeで書くなら (define (fact n) (define (iter n acc) (if (= n 0) ac...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん