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 |