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);
        }
    
  • 相关阅读:
    站立会议第七天
    站立会议第六天
    站立会议第五天
    站立会议第四天
    inotify简题
    搭建企业版yum仓
    ssh及ssh-key
    shell变量
    如何下载scp、wget、inotify及如何偷包
    rsync
  • 原文地址:https://www.cnblogs.com/erkye/p/12321374.html
Copyright © 2011-2022 走看看