ホームページ > バックエンド開発 > C++ > n 個のバイナリ文字列を追加しますか?

n 個のバイナリ文字列を追加しますか?

PHPz
リリース: 2023-08-25 14:53:25
転載
558 人が閲覧しました

添加 n 个二进制字符串?

このプログラムでは、2 進数を与えて加算する必要があります。 n 個の 2 進数があり、出力として 2 進数を取得するには、それらをすべて加算する必要があります。

これを行うには、バイナリ加算ロジックを使用して、1 から N までのすべての項目を 1 つずつ加算して結果を取得します。

Input: "1011", "10", "1001"
Output: 10110
ログイン後にコピー

説明

より簡単な方法は、バイナリ文字列を同等の 10 進数に変換し、それらを加算して再度バイナリに変換することです。ここでは手動で追加していきます。 ヘルパー関数を使用して 2 つのバイナリ文字列を追加します。この関数は、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート