티스토리 뷰

https://www.acmicpc.net/problem/1193

 

1193번: 분수찾기

첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.

www.acmicpc.net

 

이 문제는 분수 모음의 개수가 등차수열을 이루며 (분모 + 분자)가 같은 분수들이 차례로 순서를 가집니다.

 

 

따라서 주어진 숫자가 먼저 몇번째 분수 모음에 속하는지 확인합니다.

 

각 분수 모음에서 (분모 + 분자)는 해당 모음에 속하는 (분수의 개수 + 1)입니다. 또한, 짝수의 경우 분자가 1부터 시작하고 홀수는 분모가 1로 시작합니다. 이 규칙을 그대로 코드로 구현하면 문제를 해결할 수 있습니다.

 

자바 코드는 다음과 같습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());

        if (count == 1) {
            System.out.println("1/1");
        } else {
            int c = 1;
            int i = 2;
            while (true) {
                if (count <= c + i) {
                    int a = (c + i) - count + 1;
                    int b = (i + 1) - a;

                    if (i % 2 == 0) {
                        System.out.println(b + "/" + a);
                    } else {
                        System.out.println(a + "/" + b);
                    }

                    break;
                } else {
                    c += i;
                    i++;
                }
            }
        }
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함