您的位置:首页 > 其它

洛谷_p1082同余方程

2017-02-13 17:06 120 查看
#include<iostream>

using namespace std;

int gcd(int x,int y){                          //用扩展欧几里得求逆元
return y==0? x:gcd(y,x%y);

}

int exgcd(int a,int b,int &x,int &y)

{

    if(b==0)

    {

        x=1;

        y=0;

        return a;

    }

    int r=exgcd(b,a%b,x,y);

    int t=x;

    x=y;

    y=t-a/b*y;

    return r;

}

int x,y;

int main()

{
int a,b;
cin>>a>>b;
exgcd(a,b,x,y);
cout<<(x%b+b)%b<<endl;//最后的x不一定是大于0小于b的最小解   用(x%b+b)%b可以转换
return 0;

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