辗转相除
public int gcd(int a, int b){
return a == 0 ? b : gcd(b%a, a);
}
a作为较小值,b%a的值作为下次相除的除数
若初次比较时,a>b,递归调用gcd(b%a,a)时将交换a,b位置。
若a为0,表示上次的a,b有倍数关系,返回此时的b即为公约数
微信扫一扫
public int gcd(int a, int b){
return a == 0 ? b : gcd(b%a, a);
}
a作为较小值,b%a的值作为下次相除的除数
若初次比较时,a>b,递归调用gcd(b%a,a)时将交换a,b位置。
若a为0,表示上次的a,b有倍数关系,返回此时的b即为公约数
相关推荐