> 백엔드 개발 > C++ > n개의 이진 문자열을 추가하시겠습니까?

n개의 이진 문자열을 추가하시겠습니까?

PHPz
풀어 주다: 2023-08-25 14:53:25
앞으로
538명이 탐색했습니다.

添加 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] - &#39;0&#39;;
      } else {
         s += 0;
      }
      if(j >= 0) {
         s += b2[j] - &#39;0&#39;;
      } else {
         s += 0;
      }
      res = char(s % 2 + &#39;0&#39;) + 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;
}
로그인 후 복사

위 내용은 n개의 이진 문자열을 추가하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿