আমাদের দুটি সংখ্যা num_1 এবং num_2 দেওয়া আছে। লক্ষ্য হল তাদের যোগ করার সময় কতবার ক্যারি (carry) অপারেশন হয় তা বের করা।
উদাহরণ
ইনপুট: num_1 = 432, num_2 = 638
আউটপুট: ২
ব্যাখ্যা: ডান থেকে বাম: 2+8=10 (ক্যারি ১), 3+3+1=7 (ক্যারি ০), 4+6=10 (ক্যারি ১) — মোট ২বার।
ইনপুট: num_1 = 9999, num_2 = 111
আউটপুট: ৪
অ্যালগরিদম
- দুটি সংখ্যা স্ট্রিং-এ কনভার্ট করুন।
- শেষ থেকে শুরু করুন (স্ট্রিং-এর শেষ ইনডেক্স)।
- প্রতিটি ডিজিট ইন্ট-এ কনভার্ট করে যোগ করুন সাথে পिछলো ক্যারি।
- যদি যোগফল >= 10 হয়, ক্যারি = 1 এবং কাউন্ট বাড়ান। অন্যথায় ক্যারি = ০।
- দুটি স্ট্রিং খালি হয় পর্যন্ত চালিয়ে যান।
C++ বাস্তবায়ন
#include <bits/stdc++.h>
using namespace std;
int carry_add_two_numbers(int num_1, int num_2) {
string str_1 = to_string(num_1);
string str_2 = to_string(num_2);
int len1 = str_1.length();
int len2 = str_2.length();
int count = 0, carry = 0;
while (len1 > 0 || len2 > 0) {
int i = 0, j = 0;
if (len1 > 0) {
i = str_1[len1 - 1] - '0';
len1--;
}
if (len2 > 0) {
j = str_2[len2 - 1] - '0';
len2--;
}
int add = i + j + carry;
if (add >= 10) {
carry = 1;
count++;
} else {
carry = 0;
}
}
return count;
}
int main() {
int num_1 = 234578;
int num_2 = 1234;
int count = carry_add_two_numbers(num_1, num_2);
cout << "Count of number of carry operations required to add two numbers are: " << count;
return 0;
}
আউটপুট
Count of number of carry operations required to add two numbers are: 2