链接:点击打开链接
题意:求Ax+By=c中x,y的值,无解时输出-1
代码:
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
long long x,y;
long long gcd(long long a,long long b){
if(b==0)
return a;
return gcd(b,a%b);
}
void ex_gcd(long long a,long long b){
long long t;
if(b==0){
x=1;y=0;
return;
}
ex_gcd(b,a%b); //扩展欧几里得模板
t=x;x=y;y=t-(a/b)*x;
}
int main()
{
long long a,b,c,d;
while(cin>>a>>b>>c){
d=gcd(a,b);
if(c%d){ //互质的时候无解
cout<<"-1"<<endl;
continue;
}
a/=d;b/=d;c/=d;
ex_gcd(a,b);
c=-c;
x*=c;y*=c;
cout<<x<<" "<<y<<endl;
}
return 0;
}
本文介绍了一种解决线性方程Ax+By=c的方法,使用扩展欧几里得算法来找到x和y的值。当方程无解时输出-1,并通过代码实现展示了这一过程。

732

被折叠的 条评论
为什么被折叠?



