[백준/C] 1735번 분수 합 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1735번 분수 합
- 문제풀이 코드 GitHub 링크
- 제출 언어: C
풀이
문제
두 분수 a/b, c/d가 주어질 때
합을 기약분수 형태로 출력하는 문제입니다.
코드
#include <stdio.h>
int euclidean(int a, int b) {
return a % b ? euclidean(b, a%b) : b;
}
int main() {
int a0, a1, b0, b1;
scanf("%d %d %d %d", &a0, &a1, &b0, &b1);
int r0 = (a0*b1) + (b0*a1);
int r1 = a1 * b1;
int g = euclidean(r0, r1);
r0 /= g;
r1 /= g;
printf("%d %d", r0, r1);
return 0;
}
설명
통분 후 분자/분모를 계산하고, 유클리드 알고리즘으로 최대공약수를 구해 나누면 기약분수가 됩니다.
댓글남기기