我的球拍程序有问题。
我想把这个函数添加到我的程序中,但是我陷入了递归:
功能如下:

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接收两个参数,但只传递了一个。

09-30 15:34