zoukankan      html  css  js  c++  java
  • 求最大公约数(欧几里得和连续整数检测)java描述

    欧几里得算法

    基本原理

    反复执行下面的等式:
    gcd(m,n) = gcd(n,m mod n)
    (m mod n 表示m除以n之后的余数)

    例如:gcd(60,24) = gcd(24,12) = gcd(12,0) = 12

    描述:

    1:如果n=0,返回m的值作为结果,同时过程结束;否则,进入步骤2。
    
    2:m除以n,将余数付给r。
    
    3:将n的值赋给m,将r的值赋给n,返回步骤1。
    

    java代码

        public static int gcd(int m,int n){
            while (n!=0){
                int r = m%n;
                m=n;
                n=r;
            }
            return m;
        }
    

    连续整数检测法

    描述:

    1:将min{m,n}的值赋给t。
    2:m除以t。如果余数为0,进入步骤3;否则进入步骤4.
    3:n除以t。如果余数为0,返回t的值作为结果,否则进入步骤4。
    4:把t的值减1.返回步骤2
    

    java代码

    public static int ctd(int m,int n){
            int t = Math.min(m, n);
            while (t>0){
                if (m%t==0&&n%t==0){
                    return t;
                }
                t--;
            }
            return Math.max(m, n);
        }
    
  • 相关阅读:
    MVC 4 中 WEB API 选择 返回格式
    用XML配置菜单的一种思路,附一些不太准确的测试代码
    2020.11.15(每周总结)
    2020.11.19
    2020.11.22
    2020.11.21
    2020.11.14
    202.11.13
    2020.11.20
    2020.11.17
  • 原文地址:https://www.cnblogs.com/erkye/p/12321374.html
Copyright © 2011-2022 走看看