কম্পিউটার টিউটোরিয়াল

C++-এ দুটি বাইনারি স্ট্রিং যোগ করে ফলাফল বাইনারি স্ট্রিং হিসেবে ফেরত দেওয়ার প্রোগ্রাম


मान लीजिए हमारे पास दो बाइनरी स्ट्रिंग्स a और b हैं, हमें इन बाइनरी संख्याओं को जोड़ना है और उनका योग ढूंढना है, वह भी एक स्ट्रिंग के रूप में।

उदाहरण के लिए, यदि इनपुट है a = "10110", b = "10010", तो आउटपुट होगा "101000"।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • ret := खाली स्ट्रिंग
  • na := a का आकार, nb := b का आकार
  • i := na - 1, j := nb - 1
  • carry := 0
  • जब तक (i >= 0 या j >= 0), करें:
    • addA := (यदि i >= 0, तो a[i] - '0' का ASCII, अन्यथा 0)
    • addB := (यदि j >= 0, तो b[j] - '0' का ASCII, अन्यथा 0)
    • sum := addA + addB + carry
    • carry := sum / 2
    • sum := sum mod 2
    • ret := ret के साथ sum को जोड़ें
    • (i को 1 से घटाएं)
    • (j को 1 से घटाएं)
  • यदि carry शून्येतर है, तो:
    • ret := ret के साथ carry को जोड़ें
  • ret सरणी को उल्टा करें
  • ret वापस करें

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

उदाहरण

#include <bits/stdc++.h> using namespace std; class Solution {    public:    string solve(string a, string b){       string ret = "";       int na = a.size();       int nb = b.size();       int i = na - 1;       int j = nb - 1;       int carry = 0;       while(i >= 0 || j >= 0){          int addA = i >= 0 ? a[i] - '0' : 0;          int addB = j >= 0 ? b[j] - '0' : 0;          int sum = addA + addB + carry;          carry = sum / 2;          sum %= 2;          ret += to_string(sum);          i--;          j--;       }       if(carry)          ret += to_string(carry); reverse(ret.begin(), ret.end());          return ret;    } }; main(){    string a = "10110", b = "10010"; Solution ob;    cout << ob.solve(a, b); }

इनपुट

"10110","10010"

आउटपुट

101000

  1. দুই বাইনারি ট্রি মার্জ (মার্জ) করা C++-এ

  2. সি++-এ দুটি বাইনারি স্ট্রিং যোগ করার প্রোগ্রাম

  3. পাইথনে স্ট্রিং হিসেবে দেওয়া দুটি সংখ্যা যোগ করার প্রোগ্রাম

  4. C++-এ স্ট্রিং গুণফল