求两个数的公因数的两种方法java实现

来源:互联网 发布:注册英语培训学校 知乎 编辑:程序博客网 时间:2024/05/18 00:27

1.方法一是,循环取余计算

    public static int gcd(int a,int b){        while(b != 0){            int temp = a % b;            a = b;            b = temp;        }        return a;    }

2.方法二,递归实现。

    public static int gcd1(int a,int b){        if(b == 0){            return a;        }        if(a % 2 == 0 && b % 2 == 0){            return 2*gcd1(a / 2,b/2);        }        if( a % 2 == 0 && b % 2 != 0){            return gcd1(a/2,b);        }        if( a % 2 != 0 && b % 2 == 0){            return gcd1(a,b/2);        }        if( a % 2 != 0 && b % 2 != 0){            return gcd1((a+b)/2,(a-b)/2);        }        return 1;    }
阅读全文
0 0
原创粉丝点击