https://www.acmicpc.net/problem/3036
문제 설명
- N개의 링이 접하도록 놓여있을때 첫번째 링을 한바퀴 돌리면 나머지 링이 몇바퀴 돌아가는지 구하기
- 반지름은 1~1000까지 자연수
최대공약수를 나누고 각각의 수를 최대공약수로 나누어 출력하는 간단한 수학적 개념의 문제이다.
최대 공약수를 구하는 코드는 다음과 같다.
public static int gcd(int a, int b){
while(b!=0){
int r = a%b;
a= b;
b= r;
}
return a;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s= new Scanner(System.in);
int N =s.nextInt(); //링의 개수
int first = s.nextInt(); //첫 번째 링
for(int i=0;i<N-1;i++) {
int rad = s.nextInt();
int gcd = gcd(first,rad);
System.out.println(first/gcd+"/"+rad/gcd);
}
}
public static int gcd(int a, int b){
while(b!=0){
int r = a%b;
a= b;
b= r;
}
return a;
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java] 백준 DFS와 BFS (0) | 2020.05.18 |
---|---|
[Java] 백준 2609번 최대공약수와 최소공배수 (0) | 2020.05.16 |
[Java] 백준 1932번 정수 삼각형 (0) | 2020.05.16 |
[Java] 백준 14501 퇴사 (0) | 2020.05.14 |
[Java] 백준 2225번 합분해 (0) | 2020.05.08 |
댓글