📌  相关文章
📜  Java番石榴 | IntMath 类的 gcd(int a, int b) 方法

📅  最后修改于: 2022-05-13 01:55:46.470000             🧑  作者: Mango

Java番石榴 | IntMath 类的 gcd(int a, int b) 方法

Guava 的 IntMath 类的方法gcd(int a, int b)返回 a, b 的最大公约数。

句法 :

public static int gcd(int a, int b)

Where a and b are integers.

返回值:整数 a 和 b 的最大公约数。

异常:如果 a < 0 或 b < 0,方法 gcd(int a, int b) 会抛出IllegalArgumentException

示例 1:

// Java code to show implementation of
// gcd(int a, int b) method of Guava's
// IntMath class
import java.math.RoundingMode;
import com.google.common.math.IntMath;
  
class GFG {
  
    // Driver code
    public static void main(String args[])
    {
        int a1 = 64;
        int b1 = 36;
  
        // Using gcd(int a, int b) method
        // of Guava's IntMath class
        int ans1 = IntMath.gcd(a1, b1);
  
        System.out.println("GCD of a1 & b1 is: "
                           + ans1);
  
        int a2 = 23;
        int b2 = 15;
  
        // Using gcd(int a, int b) method
        // of Guava's IntMath class
        int ans2 = IntMath.gcd(a2, b2);
  
        System.out.println("GCD of a2 & b2 is: "
                           + ans2);
    }
}
输出:
GCD of a1 & b1 is: 4
GCD of a2 & b2 is: 1

示例 2:

// Java code to show implementation of
// gcd(int a, int b) method of Guava's
// IntMath class
import java.math.RoundingMode;
import com.google.common.math.IntMath;
  
class GFG {
  
    // Driver code
    public static void main(String args[])
    {
        int a1 = -5;
        int b1 = 15;
  
        try {
            // Using gcd(int a, int b) method
            // of Guava's IntMath class
            // This should throw "IllegalArgumentException"
            // as a1 < 0
            int ans1 = IntMath.gcd(a1, b1);
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
输出:
java.lang.IllegalArgumentException: a (-5) must be >= 0

注意:如果 a == 0 && b == 0,该方法返回 0。

参考: https://google.github.io/guava/releases/20.0/api/docs/com/google/common/math/IntMath.html#gcd-int-int-