#JLT04A. 2026年J组模拟赛10连测第4场-T1 程老师的负二进制

2026年J组模拟赛10连测第4场-T1 程老师的负二进制

文件读写

  • 输入文件base.in
  • 输出文件base.out

限制

  • 1000ms
  • 512MB

题目描述

程老师整理旧物时翻到一台上古计算机的说明书,里面记载了一种奇怪的计数法——负二进制。

负二进制和二进制很像:从右往左第 ii 位(从 00 开始数)依然是 00 或 11,但它表示的数值是 (−2)i(-2)^i,而不是 2i2^i。

说明书还给出了把十进制整数 nn 转成负二进制的方法:不断除以 −2-2 取余数,余数依次就是负二进制从右往左的每一位。但有一条修正规则:余数必须是非负的(00 或 11),如果某一步算出负余数,就把商加 11、余数加 22 再继续。

特别地,n=0n = 0 时输出 0;输出的最高位不能是 00(n=0n = 0 本身除外)。

程老师想考考大家:给定一个十进制整数 nn(可能是正数、负数或 00),它的负二进制表示是什么?

输入格式

一行一个整数 nn。

输出格式

一行一个 0101 字符串,nn 的负二进制表示。

数据范围

测试点编号 nn 范围 特殊性质
1∼21 \sim 2 0≤n≤1000 \leq n \leq 100 无
3∼43 \sim 4 n∈{0,1}n \in \{0, 1\}
5∼85 \sim 8 −100≤n≤100-100 \leq n \leq 100
9∼109 \sim 10 0<n≤1030 < n \leq 10^3 A
11∼1211 \sim 12 −103≤n<0-10^3 \leq n < 0 B
13∼1613 \sim 16 ∣n∣≤106\lvert n \rvert \leq 10^6 无
17∼2017 \sim 20 ∣n∣≤109\lvert n \rvert \leq 10^9

特殊性质 A:nn 为正整数。

特殊性质 B:nn 为负整数。

1
1
-3
1101
7
11011

样例解释

样例2:按修正规则逐位计算——

步骤 当前值 nn n÷(−2)n \div (-2) 的商 余数 是否修正 修正后商 修正后余数
1 −3-3 11 −1-1 是(余数 <0< 0) 22 11
2 22 −1-1 00 否 −1-1 00
3 −1-1 00 −1-1 是(余数 <0< 0) 11 11
4 11 11 否 00

余数从右往左依次是 1,0,1,11, 0, 1, 1,即 1101。验证:(−2)3+(−2)2+(−2)0=−8+4+1=−3(-2)^3 + (-2)^2 + (-2)^0 = -8 + 4 + 1 = -3。

难度 未评定
通过率 28.2%
尝试 39
通过 11
ID
3741
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关