算法大师头像
关注
8.19华为OD机试真题 新系统 - 大整数位序反转 (Java/Py/C/C++/Js/Go)封面图

8.19华为OD机试真题 新系统 - 大整数位序反转 (Java/Py/C/C++/Js/Go)

大整数位序反转

2026 华为OD机试真题 8月19日华为OD上机新系统考试真题 100 分题型

点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解

题目描述

小华是一名嵌入式开发工程师,在处理芯片寄存器数据时,经常需要对超多位数据进行位翻转操作。寄存器中的数据可能是几百位甚至更长。

给定一个十进制大整数(最多 100 位),请将其二进制表示中的所有位顺序全部翻转(最低位变成最高位,次低位变成次高位,以此类推),然后输出翻转后的十进制表示。

输入描述

一个十进制大整数(字符串形式,范围:0 ~ 10^100 - 1,输入不带前导零,除非为 0)。

输出描述

翻转后的十进制整数(字符串形式,不能有前导零,除非输出为 0)。

示例1

输入

1

输出

1

说明

1 的二进制为 1,翻转后仍为 1,对应十进制 1。

示例2

输入

2

输出

1

说明

2 的二进制为 10,翻转为 01(即 1),对应十进制 1。

示例3

输入

4

输出

1

说明

4 的二进制为 100,翻转为 001(即 1),对应十进制 1。

解题思路

核心思想

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

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

算法步骤

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

复杂度分析

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

<

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/banxia_frontend/article/details/163896533

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--