দুটি বাইনারি স্ট্রিং দেওয়া আছে। সেগুলো যোগ করে ফলাফল বাইনারি স্ট্রিং হিসেবে রিটার্ন করতে হবে।
বাইনারি সংখ্যা শুধু ০ ও ১ দিয়ে বোঝানো হয়। বাইনারি যোগফলের নিয়ম:
0+0 → 0 0+1 → 1 1+0 → 1 1+1 → 0, carry 1
ইনপুট
str1 = "11", str2 = "1"
আউটপুট
"100"
ইনপুট
str1 = "110", str2 = "1"
আউটপুট
"111"
পদ্ধতি
- দুই স্ট্রিংয়ের শেষ থেকে শুরু করুন।
- বাইনারি ডিজিট যোগ করুন, ক্যারি হ্যান্ডল করুন।
- ফলাফল স্ট্রিং তৈরি করুন।
এলগরিদম
Start
Step 1 → string add(string a, string b)
string result = ""
int temp = 0
int size_a = a.size() - 1
int size_b = b.size() - 1
while (size_a >= 0 || size_b >= 0 || temp == 1)
temp += (size_a >= 0 ? a[size_a] - '0' : 0)
temp += (size_b >= 0 ? b[size_b] - '0' : 0)
result = char(temp % 2 + '0') + result
temp /= 2
size_a--; size_b--
return result
Step 2 → main(): স্ট্রিং ঘোষণা, add() কল
Stop
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
string add(string a, string b){
string result = "";
int temp = 0;
int size_a = a.size() - 1;
int size_b = b.size() - 1;
while (size_a >= 0 || size_b >= 0 || temp == 1){
temp += ((size_a >= 0) ? a[size_a] - '0' : 0);
temp += ((size_b >= 0) ? b[size_b] - '0' : 0);
result = char(temp % 2 + '0') + result;
temp /= 2;
size_a--; size_b--;
}
return result;
}
int main(){
string a = "10101", b = "11100";
cout << "Sum: " << add(a, b);
return 0;
}
আউটপুট
Sum of strings are: 110001