AVRIL_START_JANCOKALIVEAVRIL_END_JANCOK Interactive Terminal

Command Executor

**大整数位序反转** - 魔改工程师

**大整数位序反转**

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。

解题思路

核心思想

将输入的十进制大整数转成二进制字符串,反转这个二进制字符串,再把反转后的二进制字符串转回十进制字符串。

需要注意 的二进制反转后仍然是

算法步骤

  1. 读取一行十进制大整数字符串。
  2. 如果输入为 ,直接输出
  3. 将十进制大整数转成二进制表示。
  4. 反转二进制字符串。
  5. 将反转后的二进制字符串转回十进制并输出。

复杂度分析

设输入十进制位数为 d,二进制位数为 b

  • 时间复杂度:使用内置大整数时为 O(b) 级别;C 语言字符串模拟约为 O(d*b)
  • 空间复杂度:`O
THE END