Math 求偶数和的Scheme函数

Math 求偶数和的Scheme函数,math,scheme,lisp,add,Math,Scheme,Lisp,Add,我需要在scheme中创建一个递归函数,将偶数的前n个数相加 (define (even-sum n) (cond ((= n 0) 0) ((= (modulo n 2) 0) (+ n (even-sum (- n 2)))))) 这是我到目前为止所做的,但它只运行n次,而不是对前n个偶数求和。当n为奇数时,您只是忘记了处理该情况: (define (even-sum n) (cond ((= n 0) 0) ((= (modulo n 2) 0)

我需要在scheme中创建一个递归函数,将偶数的前n个数相加

(define (even-sum n)
  (cond ((= n 0) 0)
        ((= (modulo n 2) 0) (+ n (even-sum (- n 2))))))

这是我到目前为止所做的,但它只运行n次,而不是对前n个偶数求和。

n
为奇数时,您只是忘记了处理该情况:

(define (even-sum n)
  (cond ((= n 0) 0)
        ((= (modulo n 2) 0) (+ n (even-sum (- n 2))))))
(define (even-sum n)
  (cond ((<= n 0) 0)
        ((= (modulo n 2) 0)
         (+ n (even-sum (- n 2))))
        (else (even-sum (- n 1)))))
无论哪种方式,它都能按预期工作:

(even-sum 1001)
=> 250500