【发布时间】:2018-02-01 18:42:44
【问题描述】:
我需要创建一个函数来计算从 0 开始的前 n 个偶数之和(即(even-sum 4) 将返回 12)。
(define (even-sum n)
(cond
((= n 0) 0)
((= n 1) 0)
(else (+ (* n 2) (even-sum (- n 2 ))))))
这是我到目前为止所拥有的,它适用于(even-sum 4),但不适用于其他情况,(even-sum 6) 应该是 30 但出来是 24,(even-sum 2) 应该是 2 但出来是 4。
【问题讨论】:
-
为什么要在递归中减去 2?
-
(define (even-sum n) (* n (- n 1))) -
Lisp、Scheme 和 Racket 是三种不同的语言。请不要标记炸弹。
标签: numbers scheme lisp racket r5rs