এখানে আমরা দেখব কিভাবে আমরা একটি প্রোগ্রাম লিখতে পারি যা স্ট্রিং হিসাবে দেওয়া n বাইনারি সংখ্যা যোগ করতে পারে। সহজ পদ্ধতি হল বাইনারি স্ট্রিংকে তার দশমিক সমতুল্যে রূপান্তর করে, তারপরে সেগুলি যোগ করুন এবং আবার বাইনারিতে রূপান্তর করুন। এখানে আমরা ম্যানুয়ালি সংযোজন করব।
দুটি বাইনারি স্ট্রিং যোগ করতে আমরা একটি সহায়ক ফাংশন ব্যবহার করব। সেই ফাংশনটি n-1 বার n বিভিন্ন বাইনারি স্ট্রিং-এর জন্য ব্যবহার করা হবে। ফাংশনটি নিচের মত কাজ করবে।
অ্যালগরিদম
addTwoBinary(bin1, bin2)
begin s := 0 result is an empty string now i := length of bin1, and j := length of bin2 while i >= 0 OR j>=0 OR s is 1, do if i >=0 then, s := s + bin1[i] as number else s := s + 0 end if if j >=0 then, s := s + bin2[j] as number else s := s + 0 end if result := (s mod 2) concatenate this with result itself s := s/2 i := i - 1 j := j - 1 done return result end
উদাহরণ
#include<iostream> using namespace std; string addTwoBinary(string bin1, string bin2) { string result = ""; int s = 0; //s will be used to hold bit sum int i = bin1.length() - 1, j = bin2.length() - 1; //traverse from LSb while (i >= 0 || j >= 0 || s == 1) { if(i >= 0) s += bin1[i] - '0'; else s += 0; if(j >= 0) s += bin2[j] - '0'; else s += 0; result = char(s % 2 + '0') + result; s /= 2; //get the carry i--; j--; } return result; } string add_n_binary(string arr[], int n) { string result = ""; for (int i = 0; i < n; i++) result = addTwoBinary(result, arr[i]); return result; } main() { string arr[] = { "1011", "10", "1001" }; int n = sizeof(arr) / sizeof(arr[0]); cout << add_n_binary(arr, n) << endl; }
আউটপুট
10110