#12052. Infinite Powers of 10 / 无限次幂
Infinite Powers of 10 / 无限次幂
Problem J48: Infinite Powers of 10 / 无限次幂
版权信息: · 数列模拟与位分析
任务总览
任务名称 | 时间限制 | 内存限制 | 分数 |
---|---|---|---|
无限次幂 | 1 sec | 1024 MB | 15 points |
题目描述
考虑将所有 的非负整数次幂按顺序连接起来: = 1, = 10, = 100,$ , 连接后的数列如下:
1101001000...
你需要判断该无限序列的第 位是 0
还是 1
。
输入格式
*第 行为一个整数 (),表示测试数据组数;
- 接下来的 行,每行一个整数 (),表示需要查询的位置。
输出格式
*输出共 行;
- 每行一个字符
0
或1
,表示该位在数列中对应的值。
输入输出样例
输入示例
3
1
2
3
输出示例
1
1
0
题目分析与解法
✅ 数列构造过程:
连接的数列为:
10 ^ 0 = 1 → 1 位
10 ^ 1 = 10 → 2 位
10 ^ 2 = 100 → 3 位
10 ^ 3 = 1000 → 4 位
10 ^ 4 = 10000 → 5 位
...
所以构成的整体数列为:
1 | 10 | 100 | 1000 | 10000 | ...
我们只需:
- 逐步累加每个 的长度;
- 找出 落在哪个幂中;
- 然后从该项 中定位该位,判断是
1
还是0
。
✅ 示例说明:
- 第 位是 → 输出
1
- 第 位是 → 输出
1
- 第 位是 的第二位 → 输出
0
边界细节说明
*数列中 10^k
的位数为 ;
- 最大查询位置为 ,需高效判断;
- 可预先构建每段的起始下标,然后使用二分查找定位。
时间复杂度分析
操作 | 复杂度 |
---|---|
每次查询 | |
总体查询 | , |