欧几里得算法

辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

算法描述

用辗转相除法确定两个正整数 a 和 b(a≥b) 的最大公因数  :
当   时,    否则   递归或循环运算得出结果。
算法流程图如下:
 
 
 
Java实现
/**
     * 欧几里得算法
     * @param m 较大数
     * @param n 较小数
     * @return
     */
    public static int gcd(int m, int n) {
        while (true) {
            if ((m = m % n) == 0)
                return n;
            if ((n = n % m) == 0)
                return m;
        }
    }

这里只是作为递归的调用了解一下。

 

转载于:https://www.cnblogs.com/zeussbook/p/11198365.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页