帶有多個參數的 gcd 和 lcm Scheme,DRracket

一個有需要的學生
(define (gcd a b)
  (if (= b 0)
      a
      (gcd b (remainder a b))))

我們都知道這個著名的函數,我知道如果我想要一個 (gcd abc) 就是 (gcd abc)= (gcd a (gcd bc))。但我需要實際查看代碼,向我展示如何實現該通用功能,因為我沒有編寫許多不同的函數定義,我只需要包含無限參數的一個,實際的球拍 gcd 和 lcm 函數已經做了那個,但我不知道怎麼做。

巴馬

使用.的參數列表,允許其採取可選的參數,這將是在列表中。如果有其他參數,則遞歸。

(define (gcd a b . more)
  (cond ((pair? more) (gcd a (apply gcd b more))
        ((= b 0) a)
        (else (gcd b (remainder a b)))))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章