您的位置:首页 > 编程语言 > Java开发

辗转相除法原理及Java实现

2016-07-17 14:46 771 查看
辗转相除法

「辗转相除法」又叫做「欧几里得算法」,是公元前 300 年左右的希腊数学家欧几里得在他的著作《几何原本》提出的.利用这个方法,可以较快地求出两个自然数的最大公因数,即 HCF 或叫做 gcd.

最大公约数(greatest common divisor,简写为gcd;或highest common factor,简写为hcf)

所谓最大公因数,是指几个数的共有的因数之中最大的一个,例如 8 和 12 的最大公因数是 4,记作 gcd(8,12)=4.

Java实现代码如下:

package com;

public class GcdTest

{

//循环实现

int gcd1(int a, int b)

{

int k = 0;

do

{

//得到余数

k = a % b;

//根据辗转相除法,把被除数赋给除数

a = b;

//余数赋给被除数

b = k;

} while (k != 0);

//返回被除数

return a;

}

//逆归实现

int gcd2(int a,int b)

{

//直到满足此条件逆归退出

if(b == 0)

{

return a;

}

if(a < 0)

{

return gcd2(-a,b);

}

if(b < 0)

{

return gcd2(a,-b);

}

return gcd2(b,a % b);

}

public static void main(String[] args)
{
GcdTest gt = new GcdTest();
System.out.println(gt.gcd1(888,458));
System.out.println(gt.gcd2(888, 458));
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: