欧几里得算法-计算两个数的最大公约数
最近,总觉得自己的代码写的很low,想要做一些优化,却又不知从何处下手,于是开始复习一下之前学过的算法,并且试着用Java代码将其实现,整理出来,免不得Ctrl C+Ctrl V用久了脑子就不好使了
/**
* 欧几里得算法:计算两个非负整数的最大公约数:
* 若除数divisor为0,则最大公约数为被除数dividend
* 否则,将被除数dividend除以除数divisor得到余数remainder
* 被除数dividend和除数divisor的最大公约数即为除数divisor和余数remainder的最大公约数
* Created by Waria on 2017/8/18.
*/
public class EuclideanAlgorithm {
/**
* 欧几里得算法:计算两个非负整数的最大公约数
*
* @param dividend 被除数
* @param divisor 除数
* @return
*/
public static int euclidean(int dividend, int divisor) {
if (divisor == 0) {
return dividend;
}
//余数
int remainder = dividend % divisor;
return euclidean(divisor, remainder);
}
}