ভূমিকা
একাধিক বাইনারি স্ট্রিং (যেমন "1011", "10", "1001") দেওয়া থাকলে, সেগুলো বাইনারি আডিশন (binary addition) করেক একই স্ট্রিং আকারে যোগফল বের করতে হবে।
উদাহরণ
ইনপুট: "1011", "10", "1001" আউটপুট: 10110
এলগরিদম
string add(b1, b2)
i = b1.length-1, j = b2.length-1, carry = 0
যতক্ষণ i>=0 বা j>=0 বা carry==1:
sum = carry
যদি i>=0: sum += b1[i]-'0', i--
যদি j>=0: sum += b2[j]-'0', j--
result = char(sum%2 + '0') + result
carry = sum/2
রিটার্ন result
string addBinary(arr[], n)
result = ""
i = 0 থেকে n-1: result = add(result, arr[i])
রিটার্ন result
C++ প্রোগ্রাম উদাহরণ
#includeusing namespace std; string addBinaryStrings(string a, string b) { string res = ""; int i = a.size()-1, j = b.size()-1, carry = 0; while (i >= 0 || j >= 0 || carry) { int sum = carry; if (i >= 0) sum += a[i--] - '0'; if (j >= 0) sum += b[j--] - '0'; res = char(sum % 2 + '0') + res; carry = sum / 2; } return res; } string addMultiple(string arr[], int n) { string res = ""; for (int i = 0; i < n; i++) res = addBinaryStrings(res, arr[i]); return res; } int main() { string arr[] = {"1011", "10", "1001"}; cout << addMultiple(arr, 3) << endl; // 10110 return 0; }
আউটপুট
10110