最大公约数 思路:辗转相除 首先假设m比n大,若n与m有最大公约数x,m=y * n+b,由于m与n是x的倍数,所以,m % x == 0推出(y * n + b) % x == 0,即b%x==0。 也就是说,可以通过这种取余的形式去进一步缩小值的范围,直到获得出口条件n%b==0。 public int gcd(int m, int n){ return n==0 ? m:gcd(n, m%n); } 如果n比m大,只需要多迭代一次即可。