続・問題 1.16
無職の間にSICPも読んでみる。目標は焦らずしっかりと読む。問題の解答をさらす。解く順番は出来るだけリニア。
昨日 id:mohayonao:20090316:1237205020 のつづき
偶数でも奇数でも常に2で割る方法にしてみた。
(define (expt base n) (define (expt-iter a b n) (cond ((= n 0) a) ((even? n) (expt-iter a (* b b) (/ n 2))) (else (expt-iter (* a b) (* b b) (/ (- n 1) 2))))) (expt-iter 1 base n))
昨日のはコッチ
(define (expt base n) (define (expt-iter a b n) (cond ((= n 0) a) ((even? n) (expt-iter a (* b b) (/ n 2))) (else (expt-iter (* a b) b (- n 1))))) (expt-iter 1 base n))