辗转相除的基本思想就是:
用大的数除以小数;
取得余数,若余数为0,则最大公约数为除数;
若余数不为零,则用除数除以余数,递归直到余数为0
package com.liu.util;
public class GetMaximumCommonDivisor {
public static int getDivisor(int m, int n){
/**
* 判断m,n的大小,用大的数除以小数,
* 取得余数,若余数为0,则最大公约数为除数
* 若余数不为零,则用除数除以余数
*/
int tmp = 0;
if(m < n){
tmp = m;
m = n;
n = tmp;
}
int result = m % n;
if(result == 0){
return n;
}else{
return getDivisor(n, result);
}
}
}