【发布时间】:2016-10-28 02:41:54
【问题描述】:
我正在尝试计算 nCk 在球拍/方案中使用记忆的组合方式
我不能使用单独的递归方法来计算 n!。 我已经做到了这一点,但是说这是不好的语法 我实际上修复了错误的语法错误! 但在 (let ([ans (assoc (x y) memo part!. 有谁知道我做错了什么?
(define combm
(letrec ([memo null]
[f (lambda (x y)
(let ([ans (assoc (x y) memo)])
(if ans
(cdr ans)
(let ([new-ans (letrec ([fac (lambda (x)
(if (eq? x 0)
1
(* x (fac (- x 1)))))])
(/ (fac x) (* (fac y) (fac (- x y)))))])
(begin
(set! memo (cons (cons (x y) new-ans) memo))
new-ans)))))])
f))
`
【问题讨论】: