1735번: 분수 합
첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.
www.acmicpc.net
풀이 과정
- 일반적인 분수에 대해서 분자와 분모의 최대 공약수를 구한 후 각각 나눠 주면 기약 분수가 됨
정답
import java.util.Scanner;
public class Main {
//최대 공약수
public static int gcd(int a, int b)
{
if(b==0)
{
return a;
}
else
{
return gcd(b,a%b);
}
}
//최소 공배수
public static int lcm(int a ,int b)
{
int gcd = gcd(a,b);
return (a*b)/gcd;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a1 = sc.nextInt();
int a2 = sc.nextInt();
int b1 = sc.nextInt();
int b2 = sc.nextInt();
int bunmo = lcm(a2,b2);
int temp1 = bunmo/a2;
int temp2 = bunmo/b2;
int bunja = (a1*temp1)+(b1*temp2); //분자의 합
int gcd = gcd(bunja,bunmo);
//기약 분수로 만들기 위해서 두 수의 최대 공약수를 나눠 줌
System.out.println((bunja/gcd)+" "+(bunmo/gcd));
}
}
'Java > 백준' 카테고리의 다른 글
[JAVA] 백준 4134 다음 소수 (1) | 2024.02.10 |
---|---|
[JAVA] 백준 2485 가로수 (1) | 2024.02.10 |
[JAVA] 백준 13241 최소공배수 (1) | 2024.02.10 |
[JAVA] 백준 12789 도키도키 간식드리미 (1) | 2024.02.10 |
[JAVA] 백준 4949 균형잡힌 세상 (2) | 2024.02.08 |