【问题描述】给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。 【输入形式】两行,两个二进制串(长度不超过100) 【输出形式】结果串
时间: 2023-12-04 19:02:57 浏览: 73
```python
a = input().strip()
b = input().strip()
# 将 a, b 转为 int 类型
a = int(a, 2)
b = int(b, 2)
# 计算二进制和
s = a + b
# 将 s 转为二进制字符串
res = bin(s)[2:]
print(res)
```
注意,输出的结果是一个二进制字符串,需要将二进制字符串转为 int 类型,才能进行加法运算。在计算完成后,需要将结果转为二进制字符串,再输出。
相关问题
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。
可以将两个二进制字符串先转化为十进制数,然后相加后再将和转化为二进制字符串。
代码如下:
```python
def addBinary(a: str, b: str) -> str:
# 将两个二进制字符串转化为十进制数
num_a = int(a, 2)
num_b = int(b, 2)
# 计算和
sum_num = num_a + num_b
# 将和转化为二进制字符串
res = bin(sum_num)[2:]
return res
```
其中,`int(a, 2)` 表示将二进制字符串 `a` 转化为十进制数,`bin(sum_num)` 表示将十进制数 `sum_num` 转化为二进制字符串。注意,转化后的二进制字符串前两个字符为 `'0b'`,需要去掉,所以用 `[2:]` 取子字符串。
】给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。\n\n【输入形式】两行,两个二进制串(长度不超过100)\n\n【输出形式】结果串\n\n【样例输入】\n\n11
### 回答1:
这道题要求编写一个函数,输入为一个二进制字符串,并返回它们的和(用二进制字符串表示)。输入的字符串只包含数字 1 和 0,长度不超过100。
下面是样例输入:
11
10
下面是样例输出:
101
### 回答2:
题目描述:
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。
解题思路:
本题思路较为简单,我们可以先将两个二进制字符串末尾对齐,然后从末位开始,逐位考虑进位和余数,最终得到结果字符串。
具体做法如下:
1. 首先分别将两个二进制字符串逆序,即从最低位开始计算。
2. 然后将两个二进制字符串末位对齐,长度不足的高位补零。
3. 对末位相加,考虑进位和余数,注意最高位的进位。
4. 循环处理,知道两个字符串全部处理完毕。
5. 最后将结果字符串再次逆序,即可得到最终结果。
代码实现:
代码中使用了C++ STL中的string类处理字符串,vector容器存储结果,reverse函数实现字符串翻转等函数简化了代码编写。
```
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string addBinary(string a, string b) {
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int n = max(a.size(), b.size());
vector<int> sum(n, 0);
int carry = 0;
for (int i = 0; i < n; i++) {
int ai = i < a.size() ? a[i] - '0' : 0;
int bi = i < b.size() ? b[i] - '0' : 0;
sum[i] = (ai + bi + carry) % 2;
carry = (ai + bi + carry) / 2;
}
if (carry) sum.push_back(1);
reverse(sum.begin(), sum.end());
string result = "";
for (auto c : sum) result += to_string(c);
return result;
}
int main()
{
string a, b;
cin >> a >> b;
cout << addBinary(a, b) << endl;
return 0;
}
```
总结:
本题主要考察字符串的处理和进位的计算。对于类型转换、容器使用和算法思想有一定要求,但通过大量的训练,已经能够做到熟能生巧。算法本身并不难,主要是对容器和字符串的操作需要有熟练的掌握。希望同学们能够理解本题,掌握相关的解题技巧。
### 回答3:
题目描述:
给定两个二进制字符串,求它们的和,并返回表示该和的二进制字符串。
输入格式:
两行,分别给出两个二进制字符串。
输出格式:
一个二进制字符串,表示它们的和。
样例输入:
11
1
样例输出:
100
解题思路:
本题思路比较简单,按照从低位到高位每位进行加法运算,记录进位情况。值得注意的是,需要判断最高位是否有进位产生。如果有,则需要在最高位加上一位。
代码实现:
以下为C++的代码实现。
阅读全文
相关推荐













