Computer >> Máy Tính >  >> Lập trình >> lập trình C

Thêm n chuỗi nhị phân?

Trong chương trình này, chúng ta phải thêm các số nhị phân đã cho. có n số nhị phân và chúng ta phải cộng tất cả chúng để tạo ra một số nhị phân làm đầu ra.

Đối với điều này, chúng tôi sẽ sử dụng logic cộng nhị phân và thêm lần lượt tất cả các số hạng từ 1 đến N để thu được kết quả.

Input: "1011", "10", "1001"
Output: 10110

Giải thích

Phương pháp dễ dàng hơn là chuyển đổi chuỗi nhị phân thành chuỗi tương đương thập phân của nó, sau đó thêm chúng và chuyển đổi lại thành nhị phân. Ở đây chúng tôi sẽ thực hiện việc thêm theo cách thủ công Chúng tôi sẽ sử dụng một hàm trợ giúp để thêm hai chuỗi nhị phân. Hàm đó sẽ được sử dụng trong n-1 lần cho n chuỗi nhị phân khác nhau.

Ví dụ

#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;
}