辗转相除法
它用来求两个正整数最大公约数的算法,
最大公约数
在给出的几个数字中共有的约数
例如:12、16的公约数有1、2、4,其中最大的一个是4,
4是12与16的最大公约数,一般记为(12,16)=4。
12、15、18的最大公约数是3,记为(12,15,18)=3。
- 辗转相除法,是求公因数的一种
1997 / 615 = 3 (余 152)
615 / 152 = 4(余7)
152 / 7 = 21(余5)
7 / 5 = 1 (余2)
5 / 2 = 2 (余1)
2 / 1 = 2 (余0)
至此,最大公约数为1
- 用java来表示辗转相除法``
public int gcd(int a,int b){ //gcd就是指最大公约数
if(b=0)
{
return a
}else{
return gcd(b,a%b);
}
}
注意的是这个在LeetCode中算法914题中会运用到。希望有帮助 谢谢。