您的位置:首页 > 其它

【codevs 1200】【NOIP 2012】同余方程 拓展欧几里德求乘法逆元模板题

2016-03-13 16:54 351 查看
模板,,,

#include<cstdio>
using namespace std;
void exgcd(long long a,long long b,long long &x,long long &y){
if (b==0) {x=1; y=0;}
else {exgcd(b,a%b,x,y); int t=y; y=x-a/b*y; x=t;}
}
int main(){
long long a,b,x,y;
scanf("%lld %lld\n",&a,&b);
exgcd(a,b,x,y);
printf("%lld\n",(x+b)%b);
return 0;
}


白书上的更简短的模板:

void gcd(LL a,LL b,LL &d,LL &x,LL &y){
if (!b){
d=a;
x=1;
y=0;
}else{
gcd(b,a%b,d,y,x);
y-=x*(a/b);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: