(define (count-change-iter coins amount)
	(define (count-change-iter-inner coins amount changes)
		(if (= (length coins) 0)
			(vector-ref changes amount)
			(let ((coin (car coins)))
				(do ((i coin (+ i 1)))
					 ((> i amount) (count-change-iter-inner (cdr coins) amount changes))
					 (vector-set! changes i (+ (vector-ref changes i) (vector-ref changes (- i coin))))))))
	(define changes (make-vector (+ amount 1) 0))
	(vector-set! changes 0 1)
	(count-change-iter-inner coins amount changes))

(display (count-change-iter '(1 5 10 15 25 50) 100))