拓展gcd

求形如ax+by=gcd(a,b)的问题

代码如下:

#include <bits/stdc++.h>
using namespace std;
// ax+by=gcd(a,b)

void exgcd(int a,int b,int &x,int &y)
{
    if(b == 0){
        x = 1;
        y = 0;
        return;
    }
    exgcd(b,a % b,y,x);
    y -= a / b * x;
}

int main()
{
    int a,b,x,y;
    scanf("%d %d %d %d",&a,&b,&x,&y);
    exgcd(a,b,x,y);
    printf("x=%d\ny=%d",x,y);
}

 

posted @ 2023-12-06 23:42  Qwehhh  阅读(15)  评论(0)    收藏  举报