添加n个二进制字符串?
在此程序中,我们必须添加给定的二进制数。有n个二进制数,我们必须将它们全部加起来以给出一个二进制数作为输出。
为此,我们将使用二进制加法逻辑并将所有从1到N的项一一相加以获得结果。
Input: "1011", "10", "1001" Output: 10110
说明
比较简单的方法是将二进制字符串转换为等效的十进制数,然后将其相加并再次转换为二进制。在这里,我们将手动进行添加。我们将使用一个辅助函数来添加两个二进制字符串。对于n个不同的二进制字符串,该函数将被使用n-1次。
示例
#include<iostream>
using namespace std;
string add(string b1, string b2) {
string res = "";
int s = 0;
int i = b1.length() - 1, j = b2.length() - 1;
while (i >= 0 || j >= 0 || s == 1) {
if(i >= 0) {
s += b1[i] - '0';
} else {
s += 0;
}
if(j >= 0) {
s += b2[j] - '0';
} else {
s += 0;
}
res = char(s % 2 + '0') + res;
s /= 2;
i--; j--;
}
return res;
}
string addbinary(string a[], int n) { string res = "";
for (int i = 0; i < n; i++) {
res = add(res, a[i]);
}
return res;
}
int main() {
string arr[] = { "1011", "10", "1001" };
int n = sizeof(arr) / sizeof(arr[0]);
cout << addbinary(arr, n) << endl;
}