본문 바로가기

Java/백준

[JAVA] 백준 1735 분수합

1735번: 분수 합 (acmicpc.net)

 

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