首頁 > 後端開發 > C++ > 新增 n 個二進位字串?

新增 n 個二進位字串?

PHPz
發布: 2023-08-25 14:53:25
轉載
539 人瀏覽過

添加 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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板