在求两个整数的最大公约数和最小公倍数时,常使用辗转
相除法,这个方法的效率很高。
接下来写出用循环和递归分别实现的代码
1:用循环实现:
public class Main{
public static void main(String[] args) {
int a = 15;
int b = 40;
while(a!=0) {
int temp = a;
a = b % a;
b = temp;
}
System.out.println(b);
}
}
2.用递归实现:
public class Main{
public static int f(int a, int b) {
if (a==0) return b;
return f(b%a, a);
}
public static void main(String[] args) {
int a = 15;
int b = 40;
System.out.println(f(a,b));
}
}
用递归实现时不要求b一定要大于a,小于也没有影响。
对于最小公倍数,他等于a * b / 最大公约数