#401. 二进制数字的和

二进制数字的和

二进制数字的和

题目描述

给定两个二进制字符串(只包含字符 01),请输出它们的和,结果同样用二进制表示,且不含前导零。

注意:两个数最多可达 60 位二进制,转成十进制会超过 long long 的表示范围,因此必须像竖式加法那样逐位相加。

输入格式

一行,两个二进制字符串,中间用一个空格隔开。保证每个字符串长度不超过 60,且不含多余的前导零(数字 0 本身写作 0)。

输出格式

一行,一个二进制字符串,表示两数之和,结果不含前导零。

样例 1

1 1
10

解释:1+1=2,二进制表示为 10(本位 0,进位 1)。

样例 2

111111111 1
1000000000

解释:111111111 + 1 = 1000000000,进位一路传递到最高位。

数据范围

  • 两个二进制字符串的长度均 ≤ 60。
  • 输入不含前导零(数字 0 本身写作 0)。
  • 答案长度可能达到 61 位(如 111...1 + 1)。

提示

倒序对齐逐位相加:本位 = (两数本位 + 进位) % 2,进位 = (两数本位 + 进位) / 2;加完后倒回来、去掉前导零,若为空则输出 0。用字符串/数组存位,不要转成十进制。