728x90
문제 :
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
입력 :
첫째 줄에 X ( 1 ≤ X ≤ 10,000,000 ) 가 주어진다.
출력 :
첫째 줄에 분수를 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean flip = true;
int i = 1, j, cnt = 1, x = sc.nextInt(), n, m;
sc.close();
loop:
while( true ) {
for( j = 1; j <= i; j++ ) {
if( cnt == x )
break loop;
cnt++;
}
flip = flip ? false : true;
i++;
}
n = i-j+1;
m = j;
System.out.println( flip ? n+"/"+m : m+"/"+n );
}
}
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] (10250) ACM 호텔 / 수학 1 (0) | 2020.03.08 |
---|---|
[백준(Baekjoon)][자바(java)] (2869) 달팽이는 올라가고 싶다 / 수학 1 (0) | 2020.03.08 |
[백준(Baekjoon)][자바(java)] (2292) 벌집 / 수학 1 (0) | 2020.03.07 |
[백준(Baekjoon)][자바(java)] (2839) 설탕 배달 / 수학 1 (0) | 2020.03.07 |
[백준(Baekjoon)][자바(java)] (1712) 손익분기점 / 수학 1 (0) | 2020.03.07 |