演習1.2

累乗の計算をするプログラムを書くという課題。簡単簡単。

;;; Exercise 1.2

(defun power (n p)
  (if (= p 0)
      1
      (* n (power n (- p 1)))))

演習問題の解答を見たら、pが偶数の時には(expr (power n (/ p 2)) 2)とすることでO(N)→O(log(N))への高速化を図ったものが載っていました。なるほど、どこかで見たことのあるアルゴリズム