Merhaba,
Şu bilindik problemi çözmeye çalışıyorum: Eldeki belirli para ile
verilen bir miktarı kaç farklı şekilde oluşturabiliriz? Bu kendi
kendini dahi açıklamayan açıklama cümlesinden sonra, hemen benim
çalışmayan kodumu ilişiğe ekliyorum:
(define (available-changes amount coins)
(cond
((= amount 0) '())
((< amount 0) #f)
(else
(append-map
(lambda (coin)
(let ((avails (available-changes (- amount coin) coins)))
(cond
((not avails) '())
((null? avails) (list coin))
(else
(append-map
(lambda (changes)
(list (cons coin changes)))
avails)))))
coins))))
;; Bize verilen 50 lirayı, eldeki 50, 25, 10, 5 ve 1 liraları
;; kullanarak hangi şekillerde oluşturabiliriz.
(available-changes 50 '(50 25 10 5 1))
Program çözemediğim şekilde sonsuz döngüye giriyor. Bu sorunun benim
kullandığım metod ile alakalı olması muhtemel. Öneri ve yorumlarınız
ile yardımcı olursanız gerçekten sevinirim.
İyi çalışmalar.
_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp