zoukankan      html  css  js  c++  java
  • 求最大公约数

    int gcd(int a,int b){
        if(b==0)   return a;
        return  gcd(b,a%b);
    }
    欧几里得

    欧几里得算法使计算两个数的最大公约数的传统算法,无论从理论还是效率上都是很好的算法。然而,当所给定的整数超出了计算机的表示能力,则计算过程就需要由用户来专门设计。1961年J.Stein提出了Stein算法解决了上述问题。它只有整数的移位和加减两种运算。

    int Stein(int a,int b){
        if(a==0)  return b;
        if(b==0)  return a;
        if(a%2==0&&b%2==0)   //a,b都是偶数
            return 2*Stein(a>>1,b>>1);
        else if(a%2==0)     //只有a是偶数
            return Stein(a>>1,b);
        else if(b%2==0)     //只有b是偶数
            return  Stein(a,b>>1);
        else                //a,b都不是偶数
            return Stein(abs(a-b),min(a,b));
    }
    View Code
  • 相关阅读:
    Tensor总结
    Tensorflow池化
    conda操作
    KS值计算
    supervisor实践
    npm/yarn实践
    nni 环境搭建
    阿里云个人邮箱配置
    Jinja2宏使用
    利用VS code 远程调试 docker 中的 dotnet 应用
  • 原文地址:https://www.cnblogs.com/wintersong/p/4369164.html
Copyright © 2011-2022 走看看