[NOIp2012提高组]同余方程

OJ题号:

洛谷1082

思路:

逆元模板。

 1 #include<cstdio>
 2 #include<cctype>
 3 inline int getint() {
 4     char ch;
 5     while(!isdigit(ch=getchar()));
 6     int x=ch^'0';
 7     while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
 8     return x;
 9 }
10 int exgcd(const int a,const int b,int &x,int &y) {
11     if(!b) {
12         x=1;
13         y=0;
14         return a;
15     }
16     int d=exgcd(b,a%b,y,x);
17     y-=a/b*x;
18     return d;
19 }
20 int main() {
21     int a=getint(),b=getint();
22     int x,y;
23     exgcd(a,b,x,y);
24     printf("%d\n",(x+b)%b);
25     return 0;
26 }

 

posted @ 2017-08-14 15:46  skylee03  阅读(138)  评论(0编辑  收藏  举报