SZ#G4B08. 【GESP强化 四级】负二进制

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 11251 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 普及 上传者: 标签>GESPGESP强化C++c++编程题进制转换和字符串进制转换负进制

题目描述

科技节上,刘老师展示了一套以 2-2 为底的整数编码。一个整数 NN 的负二进制表示是只由 01 组成的字符串 S=SkSk1ldotsS0S=S_kS_{k-1}\\ldots S_0,并满足

S0(2)0+S1(2)1+cdots+Sk(2)k=N.S_0(-2)^0+S_1(-2)^1+\\cdots+S_k(-2)^k=N.

除表示零的字符串 0 外,最高位必须是 1。任意整数的这种表示都唯一,因此输入 NN 后,展示屏能够确定唯一的负二进制编码。

小泽会把编码从最高位到最低位写在屏幕上。负数同样能够正常表示,不能额外添加前导零;整数零则使用唯一的单字符表示 0

输入格式

输入一行,一个整数 NN

输出格式

输出 NN 的负二进制表示。

-9
1011
123456789
11000101011001101110100010101
0
0

样例解释

样例 #1

1011(2)=1+(2)+(8)=91011_{(-2)}=1+(-2)+(-8)=-9

样例 #2

按照负二进制各位权值展开后等于 123456789123456789

样例 #3

整数 00 的表示规定为 0

数据范围与约定

  • 109N109-10^9 \le N \le 10^9
  • 输入值为整数