欧几里得算法



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));
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值