본문 바로가기
Coding 문제 풀이

[1193번]분수찾기

by 김수호님 2018. 12. 17.
728x90
반응형


문제


이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.

X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.


N=int(input())
def findfraction(num):
    n=1
    while 1:
        a=int((n*n+n)/2)
        if num>a:
            n+=1
        elif num==a:
            if n%2:                #분모가 증가하는지, 분자가 증가하는지를 n의 짝수 여부로 판별함
                down=n           #분수를 분모:down, 분자:up 으로 구분해서 계산함
                up=1
                print("%d/%d"%(up,down))
                break
            else:
                up=n
                down=1
                print("%d/%d"%(up,down))
                break
        else:
            if n%2:
                down=n+1-(a-num+1)
                up=n+1-down
                print("%d/%d"%(up,down))
                break
            else:
                up=n+1-(a-num+1)
                down=n+1-up
                print("%d/%d"%(up,down))
                break
findfraction(N)

728x90
반응형

'Coding 문제 풀이' 카테고리의 다른 글

[1475번] 방 번호  (0) 2018.12.17
[2775번]부녀회장이 될테야 코딩  (1) 2018.12.17
[1924번] 2007년 코딩  (0) 2018.12.17
[1011번]Fly me to the Alpha Centauri 코딩  (1) 2018.12.17
[2292번]벌집  (1) 2018.12.17