标签: sisc

递归函数不按计划工作

我在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)
    )
))
Run Code Online (Sandbox Code Playgroud)

编辑:我已经改变了我的代码来解决在评论中列出的问题,以及不断变化的位置orand.

(define changingFractions (lambda (X Y)
    (cond 
        ( (and (> X 0) (> Y 0)) (+ (/ X Y) (changingFunctions (- X 1) (- …
Run Code Online (Sandbox Code Playgroud)

lisp scheme sisc

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

标签 统计

lisp ×1

scheme ×1

sisc ×1