#401. 二进制数字的和
二进制数字的和
二进制数字的和
题目描述
给定两个二进制字符串(只包含字符 0 和 1),请输出它们的和,结果同样用二进制表示,且不含前导零。
注意:两个数最多可达 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。用字符串/数组存位,不要转成十进制。