我的球拍程序有问题。
我想把这个函数添加到我的程序中,但是我陷入了递归:
功能如下:
ggt: N x N -> N
(m,n) ->
ggT(m-n,n) if m > n
ggT(m,n-m) if n > m
m if m=n
(define (ggT m n)
(cond
[(> m n)(ggT (- m n)] ;; If m > n the programm should go recursiv back and change
;; the value of m to m-n. But I know that this wont work this way
[(< m n)(ggT (- n m)] ;; Same Problem here
[else m]))
如何开始真正的递归?
最佳答案
试试这个:
(define (ggT m n)
(cond [(> m n) (ggT (- m n) n)]
[(< m n) (ggT m (- n m))]
[else m]))
调用
ggT
函数时,只需按正确的顺序传递参数,记住ggT
接收两个参数,但只传递了一个。