Skew Binary (편향 이진법)

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

문제

수를 십진법으로 나타내면, 오른쪽에서 $k$번째 자리(가장 오른쪽 자리를 $0$번째로 셈)는 $10^k$의 배수를 나타낸다. 예를 들어,

$$81307_{10} = 8\times10^4 + 1\times10^3 + 3\times10^2 + 0\times10^1 + 7\times10^0 = 80000 + 1000 + 300 + 0 + 7 = 81307$$

수를 이진법으로 나타내면, $k$번째 자리는 $2^k$의 배수를 나타낸다. 예를 들어,

$$10011_2 = 1\times2^4 + 0\times2^3 + 0\times2^2 + 1\times2^1 + 1\times2^0 = 16 + 0 + 0 + 2 + 1 = 19$$

Skew Binary(편향 이진법)에서 $k$번째 자리는 $2^{k+1} - 1$의 배수를 나타낸다. 각 자리에 올 수 있는 숫자는 $0$과 $1$뿐이지만, 값이 $0$이 아닌 자리들 중 가장 오른쪽 자리에는 예외적으로 $2$가 올 수 있다. 예를 들어,

$$10120_{\text{skew}} = 1\times(2^5-1) + 0\times(2^4-1) + 1\times(2^3-1) + 2\times(2^2-1) + 0\times(2^1-1) = 31 + 0 + 7 + 6 + 0 = 44$$

Skew Binary로 나타낸 처음 $10$개의 수는 $0, 1, 2, 10, 11, 12, 20, 100, 101, 102$이다. (Skew Binary는 최대 한 번의 자리 올림만으로 $1$을 더할 수 있어 일부 응용에서 유용하지만, 이 문제와는 관계가 없다.)

입력

입력은 한 줄 이상으로 이루어지며, 각 줄에는 정수 $n$이 하나씩 주어진다. $n = 0$이면 입력의 끝을 의미한다. 그 외의 경우 $n$은 Skew Binary로 표현된 음이 아닌 정수이며, 그 십진수 값은 최대 $2^{31} - 1 = 2147483647$이다.

출력

각 수에 대해, 대응하는 십진수 값을 한 줄에 하나씩 출력한다.