zoukankan      html  css  js  c++  java
  • C#数据结构求最大公约数和最小公倍数[辗转相除法]

    可用“辗转相除法”求,算法如下:
    1)求出m除以n的余数,存放在变量r中;
    2)若余数r为0则执行步骤6,否则执行步骤3;
    3)把除数作为新的被除数,把余数作为新的除数;
    4)求出新的余数r;
    5)重复步骤2到4;
    6)输出n,n即为最大公约数。


           

     /// <summary>
            
    /// 求最大公约数
             
    /// 辗转相除法
              
    /// </summary>
            
    /// <param name="num1"></param>
            
    /// <param name="num2"></param>
            
    /// <returns></returns>

            public static int getGreatestCommonMeasure(int num1, int num2)
            
    {
                
    if (num1 == 0return Math.Abs(num2);
                
    if (num2 == 0return Math.Abs(num1);
                
    int num3 = 0;
                
    //insure: num1 >= num2
                if (num1 < num2)
                
    {
                    num3 
    = num1;
                    num1 
    = num2;
                    num2 
    = num3;
                }

                num3 
    = num1 % num2;
                
    while (num3 != 0)
                
    {
                    num1 
    = num2;
                    num2 
    = num3;
                    num3 
    = num1 % num2;
                }

                
    return Math.Abs(num2);
            }


            
    /// <summary>
            
    /// 求最小公倍数
            
    /// </summary>
            
    /// <param name="num1"></param>
            
    /// <param name="num2"></param>
            
    /// <returns></returns>

            public static int getLeastCommonMultiple(int num1, int num2)
            
    {
                
    int GCM = getGreatestCommonMeasure(num1,num2);
                
    if (GCM == 0return 0;
                
    return num1 * num2 / GCM;
            }


  • 相关阅读:
    2020.12.11(读书笔记)
    python打包tkiner程序运行时任务栏图标
    使用py2exe打包exe
    word常用设置方法收集
    Helium初体验
    thkiner常用组件
    Java高并发16-LongAdder类源码解析(上)
    Java高并发15-AtomicLong等原子类源码解析
    Java高并发14-多线程下ThreadLcoalRandom源码解析以及对比
    如何做一个自动化感应垃圾桶
  • 原文地址:https://www.cnblogs.com/zbo/p/1512765.html
Copyright © 2011-2022 走看看