當一數值以十進位表示時,第 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+1−1。除了最低非零的位數可能等於2之外,所有數值皆為 0 或 1。例如:
10120skew=1×(25−1)+0×(24−1)+1×(23−1)+2×(22−1)+0×(21−1)=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 的十進位值最大可能到 231−1=2147483647。
Sample Input
10120
200000000000000000000000000000
10
1000000000000000000000000000000
11
100
11111000001110000101101102000
0
Sample Output
44
2147483646
3
2147483647
4
7
1041110737