• 생각

최대공약수를 구해주기만 하면 될듯

 

  • 최대공약수구하는 방법 (재귀)
   private static int GCD(int x, int y)
    {
        if(x % y == 0) return y;
        return GCD(y, x%y);
    }

 

  • 코드

정답 코드 : 단순 수학문제이다. 두 수의 최대공약수를 구해준 뒤 최대공약수로 A, B를 나누어주면 된다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Main {
	static int N;
	static StringBuilder sb;

	public static void main(String[] args) throws Exception {
		SetData();
		System.out.println(sb);
	}

	private static void SetData() throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		N = Integer.parseInt(br.readLine());
		sb = new StringBuilder();		
		StringTokenizer st = new StringTokenizer(br.readLine());
		int A = Integer.parseInt(st.nextToken());
		int B,C;
		for(int i = 0; i < N-1; i++) {
			B = Integer.parseInt(st.nextToken());
			C = GCD(A,B);
			sb.append(A/C + "/"+ B/C + "\n");
		}
	}
	
    private static int GCD(int x, int y)
    {
        if(x % y == 0) return y;
        return GCD(y, x%y);
    }
}

 

 

 

'algorithm' 카테고리의 다른 글

[JAVA] 백준 1931번 : 회의실 배정  (0) 2020.12.04
[JAVA] 백준 11399번 : ATM  (0) 2020.12.04
[JAVA] 백준 2089번 : -2진수  (2) 2020.12.03
[JAVA] 백준 15965번 : K번째 소수  (0) 2020.12.02
[JAVA] 백준 4796번 : 캠핑  (0) 2020.12.02

+ Recent posts