1.思路:两个不同时为偶数的数相减至0为止,取不为0的数即为最大公约数
public class Test4 {
@Test
public void test1(){
System.out.println(""+gcd(36,60));//12
}
public int gcd(int first, int second){
int num = gcdN(1,first, second);
int result=gcdR(first/num,second/num);
return num*result;
}
public int gcdN(int num,int first, int second) {
if(first%2==0 && second%2==0){
num=num*2;
gcdN(num,first/2,second/2);
}
return num;
}
public int gcdR(int first, int second) {
if (first == 0) {
return second;
} else if (second == 0) {
return first;
} else if (first > second) {
return gcd(first - second, second);
} else {
return gcd(first, second - first);
}
}
}