Processing math: 100%

575 - Skew Binary

當一數值以十進位表示時,第 k 位數表示 10k (十進制由右至左編碼,最低有效位數為第 0 位)。例如:

8130710=8×104+1×103+3×102+0×101+7×100=80000+1000+300+0+7=81307

當一數值以二進制表示時,第 k 位數表示 2k。例如:

100112=1×24+0×23+0×22+1×21+1×20=16+0+0+2+1=19

當一數值以 “斜偏二進制 (Skew Binary)” 表示時,第 k 位數表示 2k+11。除了最低非零的位數可能等於2之外,所有數值皆為 0 或 1。例如:

10120skew=1×(251)+0×(241)+1×(231)+2×(221)+0×(211)=31+0+7+6+0=44

前十個斜偏二進制 (skew binary) 的數值為 0, 1, 2, 10, 11, 12, 20, 100, 101, 102。(skew binary 在某些領域特別有用,因為它使一數值加上 1 之後,最多只進位一次,但這方面的議題與本題目無關)

Input

輸入檔案有多列,每一列為一整數 n。假如 n=0 代表輸入結束,否則 n 為以斜偏二進制 (skew binary) 表示的非負整數。

Output

對每一個輸入值,輸出它的十進制表示式。n 的十進位值最大可能到 2311=2147483647

Sample Input

10120
200000000000000000000000000000
10
1000000000000000000000000000000
11
100
11111000001110000101101102000
0

Sample Output

44
2147483646
3
2147483647
4
7
1041110737