**大整数位序反转**
2026 华为OD机试真题 8月19日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
题目描述
小华是一名嵌入式开发工程师,在处理芯片寄存器数据时,经常需要对超多位数据进行位翻转操作。寄存器中的数据可能是几百位甚至更长。
给定一个十进制大整数(最多 100 位),请将其二进制表示中的所有位顺序全部翻转(最低位变成最高位,次低位变成次高位,以此类推),然后输出翻转后的十进制表示。
2026 华为OD机试真题 8月19日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
输入描述
一个十进制大整数(字符串形式,范围:0 ~ 10^100 - 1,输入不带前导零,除非为 )。
输出描述
翻转后的十进制整数(字符串形式,不能有前导零,除非输出为 )。
示例1
输入
1
输出
1
说明
1 的二进制为
1,翻转后仍为1,对应十进制 1。
示例2
输入
2
输出
1
说明
2 的二进制为
10,翻转为01(即1),对应十进制 1。
示例3
输入
4
输出
1
说明
4 的二进制为
100,翻转为001(即1),对应十进制 1。
解题思路
核心思想
将输入的十进制大整数转成二进制字符串,反转这个二进制字符串,再把反转后的二进制字符串转回十进制字符串。
需要注意 的二进制反转后仍然是 。
算法步骤
- 读取一行十进制大整数字符串。
- 如果输入为
,直接输出。 - 将十进制大整数转成二进制表示。
- 反转二进制字符串。
- 将反转后的二进制字符串转回十进制并输出。
复杂度分析
设输入十进制位数为 d,二进制位数为 b。
- 时间复杂度:使用内置大整数时为
O(b)级别;C 语言字符串模拟约为O(d*b) - 空间复杂度:`O
版权声明:
作者:魔改工程师
链接:https://www.sylblog.xin/archives/836
文章版权归作者所有,未经允许请勿转载。
THE END