문제
https://www.acmicpc.net/problem/1735
1735번: 분수 합
첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.
www.acmicpc.net
코드
#include <iostream>
using namespace std;
void swap(int &numA, int &numB) {
int temp = numA;
numA = numB;
numB = temp;
}
int findGcd(int numA, int numB) {
int numC; // 나머지
while (1) {
numC = numA % numB;
if (numC == 0)
break;
swap(numA, numB);
numB = numC;
}
return numB;
}
void makeReducedFraction(long long int& numA, long long int& numB){
int numGcd;
while(1){
numGcd = findGcd(numA, numB);
if(numGcd == 1) break;
numA /= numGcd;
numB /= numGcd;
}
}
int main() {
int numA, numB, numC, numD;
cin >> numA >> numB >> numC >> numD;
long long int numChild, numParent;
numChild = (numA * numD) + (numB * numC);
numParent = numB * numD;
makeReducedFraction(numChild, numParent);
cout << numChild << ' ' << numParent;
}
분수의 합 만들기 => 기약분수 만들기
기약분수 어떻게 만들었냐??
=> 최소 공배수가 1이 될 때까지 최소공배수로 나눠서 만들기
< 백준 BaekJoon : 2485번 가로수> C++ (0) | 2024.01.14 |
---|---|
< 백준 BaekJoon : 13241번 최소공배수> C++ (0) | 2024.01.10 |
< 백준 BaekJoon : 1934번 최소공배수 > C++ (0) | 2023.10.16 |
< 백준 BaekJoon : 11478번 서로 다른 문자얼의 개수> C++ (0) | 2023.08.04 |
< 백준 BaekJoon : 7785번 회사에 있는사람> C++ (0) | 2023.08.04 |
댓글 영역