Код Ревью
Сравни свои решения
#| BEGIN (Введите свое решение) |#
(define (square x)
(* x x))
(define (even? n)
(= (remainder n 2) 0))
(define (fast-expt b n)
(cond ((= n 0) 1)
((even? n) (square (fast-expt b (/ n 2))))
(else (* b (fast-expt b (- n 1))))))
(define (solution b n)
(iter-pow b n 1))
(define (iter-pow b n a)
(cond ((= n 0) a)
((even? n) (iter-pow b (/ n 2) (iter-pow b (/ n 2) a)))
(else (iter-pow b (- n 1) (* b a)))))
; тяжко вспоминать математику конечно
#| END |#