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

C++-এ দুটি বড় সংখ্যা (স্ট্রিং আকারে) যোগ করা


সমস্যা

দুটি বড় সংখ্যা স্ট্রিং হিসেবে দেওয়া। তাদের যোগফল স্ট্রিং হিসেবে রিটার্ন করুন।

অ্যালগরিদম: স্ট্রিং অ্যাডিশন (ম্যানুয়াল)

  1. দুটি স্ট্রিং রিভার্স করুন (বা শেষ থেকে শুরু করুন)।
  2. দুটি দৈর্ঘ্য সমান করতে ছোটটিকে লিডিং জিরো প্যাড করুন।
  3. প্রতিটি পজিশনে ডিজিট যোগ করুন + ক্যারি।
  4. রেজাল্ট ডিজিট পুশ করুন, ক্যারি আপডেট করুন।
  5. শেষে ক্যারি থাকলে পুশ করুন।
  6. রেজাল্ট রিভার্স করুন।

C++ কোড

#include <bits/stdc++.h>
using namespace std;

string addBigNumbers(string a, string b) {
    if (a.size() > b.size()) swap(a,b);
    int n = a.size(), m = b.size();
    int diff = m - n;
    string res = "";
    int carry = 0;
    for (int i=n-1; i>=0; i--) {
        int sum = (a[i]-'0') + (b[i+diff]-'0') + carry;
        res.push_back('0' + sum%10);
        carry = sum/10;
    }
    for (int i=diff-1; i>=0; i--) {
        int sum = (b[i]-'0') + carry;
        res.push_back('0' + sum%10);
        carry = sum/10;
    }
    if (carry) res.push_back('0' + carry);
    reverse(res.begin(), res.end());
    return res;
}

int main() {
    string n1 = "235235823852";
    string n2 = "45230820348";
    cout << "Sum: " << addBigNumbers(n1, n2); // 280466644200
}

আউটপুট

Sum of two large numbers is 280466644200
  1. C++-এ দুটি সংখ্যার যোগফলের মডুলো M

  2. C++-এ ত্রিভুজাকার সংখ্যা সিরিজ 1, 3, 6, 10… এর যোগফল

  3. সি++-এ N-এর নিচে দুটি সংখ্যার মাল্টিপলগুলোর যোগফল

  4. C++-এ BST-এ Two Sum IV (Two Sum IV - Input is a BST)