- 생각
최대공약수를 구해주기만 하면 될듯
- 최대공약수구하는 방법 (재귀)
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 |