यहां हम देखेंगे कि हम एक प्रोग्राम कैसे लिख सकते हैं जो स्ट्रिंग्स के रूप में दिए गए 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