目標:總:10個 denoms:(10 10 1) 回報((10)(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 1 1 1 1 1)) 我認爲問題可能存在於cond中,當我調用(cdr denoms)上的更改列表並將denoms更改爲空並退出但我不知道如何解除x這。所有幫助非常感謝!
有兩種情況,你需要聯合在一起:使用'(汽車denoms)',而不是'(汽車denoms)'。你只是在做前者。 – molbdnilo