목차

 

 


 

 

[백준 1934번 C/C++] 최소공배수 

 

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

 

1735번: 분수 합

첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.

www.acmicpc.net


 

 

코드

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
using namespace std;

int GCD(int x, int y)
{
	return y ? GCD(y, x%y) : x;
}

int main() {
	int a, b, c, d, top, down, gcd;

	scanf("%d %d", &a, &b);
	scanf("%d %d", &c, &d);

	top = a * d + b * c;
	down = b * d;

	if(top>=down)
		gcd = GCD(top, down);
	else
		gcd = GCD(down, top);

	printf("%d %d\n", top/gcd, down/gcd);

	return 0;
}

 

  1. 두 분수의 덧셈을 한다. 이 때 분자, 분모 각각 값을 구하는 연산을 한다.
  2. 유클리드 호제법으로 분자와 분모 값의 최대공약수를 구한다.
  3. 분자와 분모 각각 최대공약수로 나눠준다.

 

 

https://tech.lonpeach.com/2017/11/12/Euclidean-algorithm/

 

유클리드 호제법이란? | Lonpeach Tech

개념

tech.lonpeach.com

 


 

'⭐ 코딩테스트 > 백준' 카테고리의 다른 글

[백준 1002번 C/C++] 터렛  (0) 2023.05.01
[백준 번 C/C++] ㅇㄹㅇㄴ  (0) 2023.05.01
[백준 1934번 C/C++] 최소공배수  (0) 2023.04.27
[백준 1010번] 다리 놓기  (0) 2023.04.27
[백준 2581번 C/C++] 소수  (0) 2023.04.26