欧几里得算法定义:
计算两个非负整数p和q的最大公约数:若b是0,则最大公约数为a。否则,将a除以b等到余数c,a和b的最大公约数即为b和c的最大公约数
方法1:使用递归实现:
public class Test {
public static void main(String[] args) {
// 测试
System.out.println(gcd(260, 104));
}
// 计算两数最大公约数,其中最大公约数的英文解释是“greatest common divisor”,所以方法名称是gcd
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
int c = a % b;
return gcd(b, c);
}
}
结果:
52
方法2:使用while循环实现
public class Test {
public static void main(String[] args) {
// 测试
System.out.println(gcd(260, 104));
}
public static int gcd(int a, int b) {
while (b != 0) {
int c = a % b;
a = b;
b = c;
}
return a;
}
}
结果:
52