728x90
- 관련 사이트: https://www.acmicpc.net/problem/1735
1735번: 분수 합
첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.
www.acmicpc.net
2개의 분수가 주어졌을 때, 두 분수의 합을 기약분수로 나타내는 문제이다.
1) 입력받은 두 분수의 합 계산
입력받은 분수: a/b, c/d
분자 = a * d + c * b
분모 = b * d
2) 계산된 분자, 분모의 최대공약수 계산: 유클리드 호제법 이용
3) 계산된 분자, 분모를 각각 최대공약수로 나눔 == 기약분수
#include <iostream>
using namespace std;
int gcd(int a, int b)
{
return b ? gcd(b, a%b) : a;
}
int main()
{
long long int a, b, c, d, nume, deno;
cin >> a >> b >> c >> d;
nume = a * d + c * b;
deno = b * d;
a = gcd(nume, deno);
cout << nume / a << " " << deno / a;
return 0;
}
- 메모리: 2020 KB
- 시간: 0 ms
- 코드 길이: 320 B
728x90
'Algorithm > BackJoon' 카테고리의 다른 글
15733번: 나는 누구인가 (0) | 2023.06.23 |
---|---|
4134번: 다음 소수 (0) | 2023.06.23 |
1436번: 영화감독 숌 (0) | 2023.06.15 |
1018번: 체스판 다시 칠하기 (0) | 2023.06.14 |
15964번: 이상한 기호 (0) | 2023.06.14 |
댓글