小编jus*_*cca的帖子

(Lisp)我可以提高效率吗?

做一个计算更改样式的问题,我在lisp写了这个递归,我想知道是否有人有任何提示,使这更有效?如果数字变得太大,它就会开始破裂并花费大约3分钟来计算相当于10英镑的不同组合!即使把我指向正确的方向也会很好,谢谢!

(defun dollars (amount &optional (coins '(5 10 20 50 100 200 500 1000 2000 5000 10000)))
  (cond ((= amount 0) 1)
        ((or (< amount 0) (= (length coins) 0) (> amount 30000)) 0)          
        ((zerop (mod amount 5))
         (+ (dollars (- amount (first coins)) coins)
            (dollars amount (rest coins))))))
Run Code Online (Sandbox Code Playgroud)

lisp recursion performance common-lisp

3
推荐指数
1
解决办法
144
查看次数

标签 统计

common-lisp ×1

lisp ×1

performance ×1

recursion ×1