up back

One Last Example

(define (cast-nines n)
  (define (loop answer-so-far left-to-do)
    (if (zero? left-to-do)
        answer-so-far
        (let ((next (+ answer-so-far
                       (remainder left-to-do 10))))
          (loop (simplify next)
                (quotient left-to-do 10)))))
  (loop 0 n))