扩展欧几里得——我认为最简的写法
#include<cstdio> #include<iostream> #define ll long long using namespace std; ll a,b,x,y; void exgcd(ll a,ll b,ll &x,ll &y) { if(!b){ x=1,y=0; }else { exgcd(b,a%b,y,x); y-=(a/b)*x; } } int main() { cin>>a>>b; exgcd(a,b,x,y); cout<<(x+b)%b<<endl;//防止出现负数 return 0; }
我博客里有大量的从别的博客复制过来的代码,分析,以及理解,但我一律会在文章后面标记原博客大佬博客名,其中部分会加以连接。
绝无抄袭的意思,只是为了我在复习的时候找博客方便。
如有原作者对此有不满,请在博客留言,我一定会删除该博文。