বাইনারী নম্বর সহ দুটি স্ট্রিং দেওয়া হলে, আমাদের সেই দুটি বাইনারি স্ট্রিং যোগ করে প্রাপ্ত ফলাফল খুঁজে বের করতে হবে এবং একটি বাইনারি স্ট্রিং হিসাবে ফলাফলটি ফেরত দিতে হবে।
বাইনারি সংখ্যা হল সেই সংখ্যাগুলি যেগুলিকে 0 বা 1 হিসাবে প্রকাশ করা হয়৷ 2টি বাইনারি সংখ্যা যোগ করার সময় বাইনারি যোগ করার নিয়ম রয়েছে যা যত্ন নেওয়া উচিত৷
0+0 → 0 0+1 → 1 1+0 → 1 1+1 → 0, carry 1
ইনপুট
str1 = {“11”}, str2 = {“1”}
আউটপুট
“100”
ইনপুট
str1 = {“110”}, str2 = {“1”}
আউটপুট
“111”
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে
-
শেষ থেকে উভয় স্ট্রিং অতিক্রম করুন
-
দুটি সংখ্যার বাইনারি যোগ করুন
-
যদি দুইটি 1 থাকে তাহলে এটিকে শূন্য করুন এবং 1 বহন করুন।
-
ফলাফল ফেরত দিন।
অ্যালগরিদম
Start Step 1→ declare function to add two strings string add(string a, string b) set string result = "" set int temp = 0 set int size_a = a.size() – 1 set int size_b = b.size() – 1 While (size_a >= 0 || size_b >= 0 || temp == 1) Set temp += ((size_a >= 0)? a[size_a] - '0': 0) Set temp += ((size_b >= 0)? b[size_b] - '0': 0) Calculate result = char(temp % 2 + '0') + result Set temp /= 2 Set size_a— Set size_b— End return result Step 2→ In main() Declare string a = "10101", b="11100" Call add(a, b) Stop
উদাহরণ
#include<bits/stdc++.h> using namespace std; //function to add two strings 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 of strings are : "<<add(a, b); return 0; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেsum of strings are : 110001