#P1362. Skew Binary
Skew Binary
翻译结果
P1362. 斜二进制表示法
题目描述
Swamp County Computing的函数式编程小组已经成立一周年了。你的(非函数式编程)小组准备为他们举办一个惊喜派对。函数式编程爱好者们特别喜欢斜二进制数(skew binary),他们说:"这种表示法增减起来特别方便!"你的任务是编写一个程序,将十进制整数转换为斜二进制表示法,这将有助于制作派对横幅和其他材料。
数字表示由一组数位(digits)组成。最低位称为0阶数位,次低位称为1阶数位,以此类推。例如:
- 十进制表示中,数位是-,阶数位的权重是
- 二进制表示中,数位是和,阶数位的权重是
- 斜二进制表示中,数位是、和,阶数位的权重是
阶数 | 权重 |
---|---|
0 | |
1 | |
2 | |
3 | |
4 | |
5 | |
... |
允许使用数字意味着一个数可能有多种表示方法。但按照约定,数字只能作为最低阶的非零数位出现,这使得表示方法唯一。
在本问题中,你需要使用一种特殊方式来表示斜二进制数:将非零数位的阶数列出列表。如果某位是,则将该阶数在列表中重复出现两次。注意这意味着列表中只有前两个元素可能相同。
每个阶数以十进制整数表示,用逗号(,)分隔。列表以'['开始,']'结束。例如:
- 十进制数的斜二进制表示为,应写作
- 十进制表示为空列表
输入格式
- 第一行:测试用例数 ()
- 接下来行:每行一个十进制数(无前导或后缀空格),范围-
输出格式
每个测试用例输出一行,包含:
- 输入的十进制数(无前导零或空格)
- 一个空格
- 斜二进制列表表示(无额外空格)
样例输入
5
0
1
2
3
4
样例输出
0 []
1 [0]
2 [0,0]
3 [1]
4 [0,1]
题目来源
Tehran 2002