public class Demo {
public static int gcd(int x,int y)
{
//无论x,y谁大,第一次遍历就能把大小排好序了,默认大的在前,小的在后
//比如输入32%48
//t=32 x=48 y=t=32 这样就把顺序纠正了,所以不需要担心大小关系
//如果是48 32 ,48%32=16 第一次循环 x=32,y=16 ,再次循环后 32%16=0,x=16,y=0
//余数为0,x就是最大公约数,这就是最大公约数的辗转相除的过程
//作为欧几里得的变形还有一个重要的定理
//互为质数的两个数(最大公约数为1),当x趋近于无穷,他们可以凑出来后面所有的数(数学原理暂时不清楚)
int t;while(y>0)
{
t=x%y;
x=y; //较小的一个数
y=t; //余数
System.out.println("x="+x+" y="+y);
} //直到余数为0的时候
//
return x;
}
public static void main(String[] args) {
System.out.println(gcd(32,48));
System.out.println();
System.out.println(gcd(48,32));
}
}