diff --git a/sicp-ex-1.16.rkt b/sicp-ex-1.16.rkt index afdf1a9..05b424e 100644 --- a/sicp-ex-1.16.rkt +++ b/sicp-ex-1.16.rkt @@ -1,19 +1,16 @@ -; UNFINISHED (define (sqr n) (* n n)) (define (fast-ext-iter number power product) (cond ((= power 0) product) - ((even? power) (fast-ext-iter number + ((even? power) (fast-ext-iter (sqr number) (/ power 2) - (if (= product 1) - (sqr number) - (sqr product)))) + product)) (else (fast-ext-iter number (- power 1) - (* power product))))) + (* number product))))) (define (fast-ext number power) (fast-ext-iter number power 1)) -(fast-ext 2 8) \ No newline at end of file +(fast-ext 2 5) \ No newline at end of file