-->
当前位置:首页 > 题库

编程题:5003 skew数

Luz4年前 (2022-04-21)题库222
在skew 二进制数表示中,第k位的值x<sub>k</sub> 表示x<sub>k</sub> * (2<sup>k+1</sup>-1) 。每个位上的可能数字是0或1,最后面一个非零位可以是2,例如, 10120(skew) = 1 * (2<sup>5</sup>-1) + 0 * (2<sup>4</sup>-1) + 1 * (2<sup>3</sup>-1) + 2 * (2<sup>2</sup>-1) +0 * (2<sup>1</sup>-1) = 31 + 0 + 7 + 6 + 0 = 44. 前十个skew 数是 0、1、2、10、11、12、20、100、101以及102。

### 输入格式:

输入包含一行或多行,每行包含一个整数n。如果n = 0 表示输入结束,否则n 是一个skew 数。

### 输出格式:

对于每一个输入,输出它的十进制表示。转换成十进制后, n 不超过 2<sup>31</sup>-1 = 2 147 483 647。

### 输入样例:

in
10120
200000000000000000000000000000
10
1000000000000000000000000000000
11
100
11111000001110000101101102000
0


### 输出样例:

out
44
2147483646
3
2147483647
4
7
1041110737







答案:若无答案欢迎评论