在這個程式中,我們需要給定二進位數並進行相加。有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; }
以上是新增 n 個二進位字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!