본문 바로가기

백준/C++

[C++] 백준 1735번 - 분수 합

728x90

 

문제 1735번

https://www.acmicpc.net/problem/1735

 

일단 분수의 분모끼리 곱해준 수를 분모로 정하여 분수를 계산한다. 그리고 분자와 분모에 A, B값으로 구한 최대공약수를 각각 나눠준다. 그러면 더 이상 약분되지 않는 분수인 기약분수로 만들 수 있다.

 

#include <iostream>
using namespace std;

int gcd(int x, int y) {//최대공약수
	if (y == 0) {
		return x;
	}
	else {
		return gcd(y, x % y);
	}
}

int main() {
	int a, b, aa, bb;
	cin >> a >> b >> aa >> bb;
	int A = a * bb + aa * b;
	int B = b * bb;
	cout << A / gcd(A, B) << ' ' << B / gcd(A, B);
	return 0;
}

 

 

728x90