當一數值以十進位表示時,第k位數表示10k(十進制由右至左編碼,最低有效位數為第0位)。例如:
當一數值以二進制表示時,第k位數表示2k。例如:
當一數值以"斜偏二進制(Skew Binary)"表示時,第k位數表示 2k+1 - 1。除了最低非零的位數可能等於2之外,所有數值皆為0或1。例如:
前十個斜偏二進制(skew binary)的數值為0, 1, 2, 10, 11, 12, 20, 100, 101, 102。(skew binary在某些領域特別有用,因為它使一數值加上1之後,最多只進位一次,但這方面的議題與本題目無關)
Input
輸入檔案有多列,每一列為一整數 n。假如 n=0 代表輸入結束,否則 n 為以斜偏二進制(skew binary)表示的非負整數。
對每一個輸入值,輸出它的十進制表示式。n 的十進位值最大可能到 231 - 1 = 2147483647。
Sample Input
10120
200000000000000000000000000000
10
1000000000000000000000000000000
11
100
11111000001110000101101102000
0
Sample Output
44
2147483646
3
2147483647
4
7
1041110737
原文出處
沒有留言:
張貼留言