求问,while做法在哪里出错了
查看原帖
求问,while做法在哪里出错了
54677
star10032楼主2020/12/3 18:32
#include<iostream>
using namespace std;
#define int long long
int x1,y1,t;
int gcd(int a,int b) {
	if(b==0) {
		x1=1,y1=0;
		return a;
	}
	int d=gcd(b,a%b);
	t=x1;
	x1=y1;
	y1=t-(a/b)*y1;
	return d;
}/*
x+tm===y+tn mod L
x+tm=aL+k;
y+tn=bL+k;
y-x+t(n-m)=(b-a)L;
(b-a)L-t(n-m)=y-x
(b-a)L+t(m-n)=y-x
*/
signed main() {
	int x,y,m,n,L;
	cin>>x>>y>>m>>n>>L;
	int d=gcd(n-m,L);
	if((y-x)%d!=0) {
		cout<<"Impossible";
		return 0;
	}
	x1*=(y-x)/d;
	while(x1<0) {
		x1=max(L/d,-1*(L/d));
	}
	cout<<x1;
	return 0;
}
2020/12/3 18:32
加载中...