무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
# 1/1 1/2 1/3 1/4 1/5 …
# 2/1 2/2 2/3 2/4 … …
# 3/1 3/2 3/3 … …
# 4/1 4/2 … … … …
# 5/1 … … … … …
# … … … … … …
이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오
대각선을 기준으로 왼쪽에 위치하면 분자가, 우측에 존재하면 분모가 상승한다,
그래서n부터 끝까지 반복문을 통해 구할 수 있다.
나는 line의 위치가 짝수일 때
분자= 지금 현재 라인- (끝단에서 찾을려는n의 뺸값)
분모= (끝단에서부터 찾으려는N읠 뺀값)+1 을 해줫다
홀수의 경우에는 반대로,
n = int(input())
line = 0
end = 0
while n > end:
line += 1
end += line
diff = end - n
if line % 2 == 0: # 짝수일때
top = line - diff
bottom = diff + 1
else:
top = diff + 1
bottom = line - diff
print("%d/%d" % (top, bottom))