更容易切换变量的方法?

时间:2013-12-02 23:27:59

标签: java variables

我有一个简单的方法:

public int gcd(int a, int b) {
    while (a!=b) {
        int q = b;
        b = a%b;
        a = q;
    }
    return a;
}

有没有更简单的方法来写出最大的共同点?特别是while循环中的三行可以简化吗?

2 个答案:

答案 0 :(得分:2)

如果您不介意性能而只是可读性,那么请选择其他方法:

public int gcd(int a, int b) {
  BigInteger ba = BigInteger.valueOf(a);
  BigInteger bb = BigInteger.valueOf(b);
  return ba.gcd(bb).intValue();
}

答案 1 :(得分:1)

试试这个:

public static int gcd(int a, int b) {
    int q = b;
    b = a % b;
    a = q;
    return (a != b && a != 0 && b != 0) ? gcd(a, b) : a - b;
}