我正在用 Scheme 编写一个函数,它应该采用两个整数 X 和 Y,然后递归相加X/Y + (X-1)/(Y-1) + ...
,直到其中一个数字达到 0。
例如,取 4 和 3:
4/3 + 3/2 + 2/1 = 29/6
这是我的功能无法正常工作:
(define changingFractions (lambda (X Y)
(cond
( ((> X 0) and (> Y 0)) (+ (/ X Y) (changingFunctions((- X 1) (- Y 1)))))
( ((= X 0) or (= Y 0)) 0)
)
))
编辑:我已经更改了我的代码以解决评论中列出的问题,以及更改 和 的or
位置and
。
(define changingFractions (lambda (X Y)
(cond
( (and (> X 0) (> Y 0)) (+ (/ X Y) (changingFunctions (- X 1) (- Y 1) )))
( (or (= X 0) (= Y 0)) 0)
)
))
不幸的是,我仍然遇到错误。