三种方法:
第一种:辗转相除法:
public static long gcd(long a,long b)
{
if(b==0)
return a;
if(a<0)
return gcd(-a,b);
if(b<0)
return gcd(a,-b);
return gcd(b,a%b);
}
第二种方法:
public static long gcd(long a,long b)
{
if(b==0)
return a;
if(a<b)
return gcd(b,a);
return gcd(a-b,b);
}
第三种方法:主要还是要找规律,而且复杂度较低感兴趣的可以参看(编程之美,最大公约数问题)