Code Review
Compare your solutions
#| BEGIN (Write your solution here) |#
(define (square x) (* x x))
(define (solution b n)
(define (iter-expt b n a)
(if (= n 0)
a
(iter-expt b (- n 1) (* a (square b)))))
(if (even? n)
(iter-expt b (/ n 2) 1)
(iter-expt b (/ (- n 1) 2) b)))
#| END |#
#| BEGIN (Write your solution here) |#
(define (square x) (* x x))
(define (solution b n)
(define (iter-expt b n a)
(cond ((= n 0) a)
((even? n) (iter-expt (square b) (/ n 2) a))
(else (iter-expt b (- n 1) (* a b)))))
(iter-expt b n 1))
#| END |#
#| BEGIN (Write your solution here) |#
(define (square x) (* x x))
(define (solution b n)
(define (iter-expt b n a)
(if (= n 0)
a
(iter-expt b (- n 1) (* a (square b)))))
(if (even? n)
(iter-expt b (/ n 2) 1)
(iter-expt b (/ (- n 1) 2) b)))
#| END |#
#| BEGIN (Write your solution here) |#
(define (square x) (* x x))
(define (solution b n)
(define (iter-expt b n a)
(cond ((= n 0) a)
((even? n) (iter-expt (square b) (/ n 2) a))
(else (iter-expt b (- n 1) (* a b)))))
(iter-expt b n 1))
#| END |#