您的位置:首页 > 其它

欧几里得算法(辗转相除法 )以及扩展欧几里得算法

2017-09-02 14:23 363 查看

简单模板:

//简单gcd,求a,b最大公约数
ll gcd(ll a,ll b)
{
if(b==0)
return a;
return gcd(b,a%b);
}

//扩展欧几里得算法
//可求解ax+by=c方程组的一组解,前提是c%gcd(a,b)==0
void ex_gcd(ll a,ll b,ll &d,ll &x,ll &y) //d为在最后算出来为gcd(a,b),可不需传值
{
if(b==0)
{
d=a;
x=1;
y=0;
}
else
{
ex_gcd(b,a%b,d,y,x);
y-=x*(a/b);
}
}



还有个知识点:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm 模板 gcd ex_gcd