[백준(Baekjoon)][자바(java)] (1193) 분수 찾기 / 수학 1

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 );
	}
}

 

 

 

반응형