아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

렌치 크기

시간 제한5초메모리 제한256 MB

요약
출력된 소수에 대해 절삭, 올림, 반올림 중 하나로 일치하는 분모가 가장 작은 2의 거듭제곱 분수를 구합니다.
난이도

보통10점 중 5점

유형
수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

피터는 공장에서 일한다. 나사와 너트, 볼트마다 맞는 렌치를 골라야 해서 렌치 크기 목록을 살펴본다. 렌치 크기는 미국 관용 단위계를 따라 13/16", 3/8"처럼 인치의 분수로 적는다. 같은 크기를 소수로도 적는다. 13/16"는 0.8125"다.

부품 자료표는 이 소수를 제각각 어림해서 근삿값만 적어 둔다. 어림하는 방식에 따라 13/16"가 0.812로도, 0.813으로도, 0.81로도 적힌다.

피터가 찾는 렌치의 크기는 A/B"이고 A는 양의 정수, B는 2의 거듭제곱이다. 자료표에 적힌 소수가 주어질 때 분모 B가 가능한 가장 작은 2의 거듭제곱이 되는 렌치 크기를 구하라.

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다 (1 ≤ T ≤ 100).

다음 T개의 줄에는 자료표에 적힌 렌치 크기를 나타내는 소수가 한 줄에 하나씩 주어진다. 소수점 아래는 최대 여섯 자리다. 소수점이 없을 수도 있고 소수점 뒤에 숫자가 없을 수도 있으며 소수점 앞에 숫자가 없을 수도 있다. 입력값은 0보다 크다.

출력

각 테스트 케이스마다 렌치 크기를 한 줄에 출력한다.

d를 그 줄의 소수점 아래에 적힌 자리 수라고 하자. 뒤에 붙은 0도 자리 수에 넣고, 소수점 아래에 숫자가 없으면 d는 0이다. B는 다음 조건을 만족하는 가장 작은 2의 거듭제곱이다. A/B의 정확한 소수 표현을 소수점 아래 d자리까지 올림, 버림, 반올림 중 한 가지 방식으로 처리한 값이 입력값과 같은 양의 정수 A가 존재한다.

A/B를 기약분수라고 하자. B가 1이면 A"를 출력한다. B가 1보다 크면 A를 B로 나눈 몫 q와 나머지 r로 대분수를 만들어, q가 0이면 r/B"를, q가 0보다 크면 q r/B"를 출력한다. 마지막 글자는 인치를 뜻하는 큰따옴표다.

렌치 크기는 10인치 이하이고, 조건을 만족하는 128 이하의 2의 거듭제곱이 항상 있다. 이렇게 정해지는 A와 B는 유일하다.

예제3

  1. 예제 1

    입력
    10
    0.81
    .8125
    0.37
    2
    2.4
    2.99
    2.40
    1.27
    4.
    9.242187
    
    예상 출력
    13/16"
    13/16"
    3/8"
    2"
    2 3/8"
    2 63/64"
    2 13/32"
    1 17/64"
    4"
    9 31/128"
    
  2. 예제 2

    입력
    1
    0.5
    
    예상 출력
    1/2"
    
  3. 예제 3

    입력
    6
    1.5
    1.50
    1.500
    1.5000
    0.8
    0.80
    
    예상 출력
    1 1/2"
    1 1/2"
    1 1/2"
    1 1/2"
    3/4"
    51/64"