最大公约数(greatest common divisor)-欧几里得(Euclid) 算法
本文地址:http://blog.csdn.net/caroline_wendy/article/details/17012455
最大公约数(欧几里得算法(Euclid's Algorithm))是比较经典的算法;
主要方法: 递归相除, 求余数, 直至余数为0, 返回最后一个除数, 即可; 这样, 最早的两个数, 就都包含此除数;
此算法不需要指定大小顺序, 当顺序相反时, 第二次的余数就是较大的数;
代码如下:
/*
* algorithms.java
*
* Created on: 2013.11.28
* Author: Spike
*/
/*eclipse kepler, javase-1.7*/
public class algorithms {
//最大公约数
public static int gcd (int p, int q)
{
if (q == 0) return p;
int r = p % q;
return gcd(q, r);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int res = gcd(42, 70);
System.out.println("Hei, the gcd is " + res + ". ");
}
}