Цель: всего: 10 denoms: (10 5 1) возвращение ((10) (5 5) (5 1 1 1 1 1) (1 1 1 1 1 1 1 1 1 1))Схема: Перечислите все способы внести изменения в 10 Использование списка
Мой код:
(define (changes-list total denoms)
(cond
((null? denoms) nil)
((= total 0))
((> (car denoms) total) (changes-list total (cdr denoms)))
(else
(if (= total (car denoms)) (cons (list (car denoms)) (changes-list total (cdr denoms)))
(append (cons-all (car denoms) (changes-list (- total (car denoms)) denoms))))
) ) )
~~~~~~ Что мой код выхода прямо сейчас: ((10) (5 5) (5 1 1 1 1 1)) Я думаю, что проблема может заключаться в условии, если, когда я вызываю список изменений на (cdr denoms) и который меняет знаки на пустой и выходит, но я не знаю, как fi x это. Вся помощь очень ценится !!
Существует два случая, с которыми вам необходимо объединиться: использование '(car denoms)', а не использование '(car denoms)'. Ты делаешь только первое. – molbdnilo