】给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。\n\n【输入形式】两行,两个二进制串(长度不超过100)\n\n【输出形式】结果串\n\n【样例输入】\n\n11
时间: 2023-05-31 20:20:46 浏览: 85
### 回答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++的代码实现。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)