辗转相除法的JAVA实现
1.非递归算法
import java.util.Scanner;
public class Euclid{
public static void main (String [ ] args){
int max=0,x,y;
Scanner sc=new Scanner (System.in);
x=sc.nextInt();
y=sc.nextInt();
max=gcd(x,y);
System.out.println("最大公因数:"+max);
}
public static int gcd(int a,int b) {
while(a%b!=0) {
int tem=b;
b=a%b;
a=tem;
}
return b;
}
}
2.递归算法
import java.util.Scanner;
public class Euclid{
public static void main (String [ ] args){
int max=0,x,y;
Scanner sc=new Scanner (System.in);
x=sc.nextInt();
y=sc.nextInt();
max=gcd(x,y);
System.out.println("最大公因数:"+max);
}
static int gcd(int a,int b) {
if(b==0) return a;
return gcd(b,a%b);
}
}