8진 소수

면접 대비

시간 제한1초메모리 제한128 MB

요약
0과 1 사이의 8진 소수를 입력받아 각각의 정확한 10진 값을 출력하고, 끝에 붙은 0은 모두 제거한다.
난이도

보통10점 중 4점

유형
수학, 문자열, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

8진법(밑 8)으로 표기된 소수는 10진법으로 항상 정확히 표현할 수 있다. 예를 들어 8진수 0.75는 10진수로 7/8+5/64=0.9531257/8 + 5/64 = 0.953125 이다. 소수점 아래 nn자리를 갖는 모든 8진 소수는 10진법에서 소수점 아래 최대 3n3n자리로 정확하게 표현된다.

0보다 크고 1보다 작은 8진 소수를 그와 같은 값의 10진 소수로 변환하는 프로그램을 작성하라.

입력

입력은 변환할 8진수들로 이루어지며, 한 줄에 하나씩 주어진다. 각 수는 0.d1d2d3…dk0.d_1 d_2 d_3 \dots d_k 형태이고, 각 did_i는 8진 숫자(00부터 77까지)이다. 자릿수 kk에는 제한이 없다. 입력은 파일의 끝까지 계속된다.

출력

각 입력 줄마다 다음 형식으로 한 줄씩 출력한다.

X [8] = 0.Y [10]

여기서 XX는 입력으로 주어진 8진수를 그대로 옮긴 것이고, 0.Y0.Y는 그에 해당하는 10진수 값이다. 10진수 쪽에서는 뒤따르는 0을 모두 없애 마지막 자리가 0이 되지 않도록 한다.

예제3

  1. 예제 1

    입력
    0.75
    0.0001
    0.01234567
    
    예상 출력
    0.75 [8] = 0.953125 [10]
    0.0001 [8] = 0.000244140625 [10]
    0.01234567 [8] = 0.020408093929290771484375 [10]
    
  2. 예제 2

    입력
    0.1
    0.7
    0.4
    
    예상 출력
    0.1 [8] = 0.125 [10]
    0.7 [8] = 0.875 [10]
    0.4 [8] = 0.5 [10]
    
  3. 예제 3

    입력
    0.2
    0.5
    0.6
    0.3
    
    예상 출력
    0.2 [8] = 0.25 [10]
    0.5 [8] = 0.625 [10]
    0.6 [8] = 0.75 [10]
    0.3 [8] = 0.375 [10]