문제설명
소스코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int arr[] = new int[4];
for(int i = 0; i < 4; ++i) arr[i] = in.nextInt();
int a = (arr[0] * arr[3]) + (arr[1]* arr[2]);
int b = arr[1] * arr[3];
int minDivisor = gcd(a, b);
System.out.println(a / minDivisor + " " + b / minDivisor);
}
public static int gcd(int a, int b)
{
if(b == 0) return a;
else return gcd(b, a % b);
}
}
설명
- 입력받은 정수를 arr[0], ar[1], arr[2], ar[3]라고 하면
a = (arr[0] * arr[3]) + (arr[1]* arr[2])
b = arr[1] * arr[3]; - a와 b의 최대공약수를 유클리드 호제법으로 구한다.
- a와 b를 최대공약수로 나눈 값을 출력한다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 14단계 - 7785번 문제 (회사에 있는 사람) (0) | 2023.07.27 |
---|---|
[Java] 백준 15단계 - 1620번 문제 (나는야 포켓몬 마스터 이다솜) (0) | 2023.07.27 |
[Java] 백준 15단계 - 13241번 문제 (최소공배수) (0) | 2023.07.26 |
[Java] 백준 15단계 - 1934번 문제 (최소공배수) (0) | 2023.07.25 |
[C++] 백준 14단계 - 11478번 문제 (서로 다른 부분 문자열의 개수) (0) | 2023.07.24 |