U E D R , A S I H C RSS

Euclid Problem/이동현

. .
^^
X, Y .

~cpp 
//Euclid Problem/ 2005.04.03
#include <iostream>
using namespace std;
long Eucl(long, long);
long xy[2][2] = {{0,0},{0,1}};
int main(void){	
	long a, b, gcd;	
	cin >> a >> b;
	bool isSwap = false;	
	if(a<b){	//a  .
		isSwap = true;
		swap(a, b);
	}
	gcd = Eucl(a,b);	
	if(isSwap==true)
		swap(xy[1][0],xy[1][1]);
	cout << xy[1][0] << " " << xy[1][1]  << " " << gcd <<"\n";
	return 0;
}
long Eucl(long a, long b){	//a. a=bq+r 형 r=a-qb   a,b  
	if(a%b == 0)			
		return b;
	long q = (a - a%b)/b;
	long tx = xy[0][0], ty = xy[0][1];
	xy[0][0] = xy[1][0];
	xy[0][1] = xy[1][1];
	if(tx==0 && ty==0){//
		xy[1][0] = 1, xy[1][1] = q*-1;	// a   1.
	}
	else{
		xy[1][0] = xy[0][0]*-1*q+tx; // q*-1    .
		xy[1][1] = xy[0][1]*-1*q+ty;
	}
	return Eucl(b, a%b);
}

한테 할


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:14
Processing time 0.0096 sec