所以有兩個數字的gcd,我知道如何定義。
gcd a 0 = a
gcd a b = gcd b (a `mod` b)
gcd a b c = gcd3
我如何定義一個 gcd3 來找到三個數字的最大除數。gcd3的定義是:
gcd3 :: Int -> Int -> Int -> Int
uj5u.com熱心網友回復:
您可以將foldr1任何數字計數用作:
gcdN = foldr1 gcd
然后我們可以用作:
gcdN [2, 4, 8, 12]
輸出將是:
2
uj5u.com熱心網友回復:
您可以像gcd計算三個數字的總和一樣計算三個數字的總和:一次計算兩個。
gcd3 :: Int -> Int -> Int -> Int
gcd3 x y z = (x `gcd` y) `gcd` z
uj5u.com熱心網友回復:
好吧,如果您已經知道如何求兩個數字的 GCD,那么您可以求任意數量的數字的 GCD:
gcd3 a b c = gcd a (gcd b c)
gcd4 a b c d = gcd a (gcd3 b c d)
-- Which is the same as
gcd4 a b c d = gcd a (gcd b (gcd c d))
等等
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/431382.html
標籤:哈斯克尔
