분수찾기

import sys


def main():
    input = sys.stdin.readline

    x = int(input()) - 1

    i = 0
    y = 0
    while y <= x:
        i += 1
        y += i

    if i % 2 == 0:
        b = y - x
        a = i + 1 - b
    else:
        a = y - x
        b = i + 1 - a

    print(f"{a}/{b}")


main()

1번 분수부터 시작하여 배열에 왼쪽 아래를 향하는 대각선을 그으면, $i (i \ge 0)$번째 대각선 아래에 있는 분수 $a/b$들은 모두 $a+b=i+1$임을 관찰할 수 있습니다. 이를 이용하여, 입력받은 $n$번째 분수가 몇 번째 대각선에 있는지를 먼저 구합니다. 그리고 그 대각선의 번호가 짝수인지 홀수인지에 따라서 분자와 분모를 구합니다.

댓글