您的位置:首页 > 其它

【扩展欧几里得】codevs1200-同余方程

2016-11-13 19:37 113 查看
原文链接:https://www.geek-share.com/detail/2690037020.html

【题目大意】

求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解。 

【思路】

求解ax+by=1,只要x<0就不断加上 b。

1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 using namespace std;
6
7 void extgcd(int a,int b,int &x,int &y)
8 {
9     if (b==0)
10     {
11         x=0;y=1;
12         return;
13     }
14     extgcd(b,a%b,x,y);
15     int tmp=x;
16     x=y;
17     y=tmp-(a/b)*y;
18 }
19
20 int main()
21 {
22     int a,b;
23     scanf("%d%d",&a,&b);
24     int x,y;
25     extgcd(a,b,x,y);
26     while (x<=0) x+=b;
27     printf("%d",x);
28     return 0;
29 }

 

转载于:https://www.cnblogs.com/iiyiyi/p/6059616.html

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