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

C++-এ অ্যারে অফ ডিজিট ও একটি নম্বর যোগ করে সম বের করা


সমস্যা

একটি ইন্টিজার n এবং একটি ডিজিট অ্যারে m[] (যে একটি বড় সংখ্যা রিপ্রেজেন্ট করে) দেওয়া। n + m[] রিপ্রেজেন্ট করা সংখ্যা = ?

অ্যালগরিদম: ডিজিট-বাই-ডিজিট অ্যাডিশন (LSB থেকে)

  1. carry = 0।
  2. অ্যারে m-কে রিভার্স অর্ডারে (LSB প্রথম) প্রসেস করুন।
  3. প্রতিটি ডিজিট m[i]:
    • sum = (n%10) + m[i] + carry
    • n /= 10
    • carry = sum/10
    • m[i] = sum%10 (রেজাল্ট অ্যারেতে স্টোর)۔
  4. শেষে n বা carry বাকি থাকলে হ্যান্ডল করুন।

C++ কোড

#include <iostream>
using namespace std;

void addNumbers(int n, int size, int* m) {
    int carry = 0;
    for (int i = size-1; i >= 0; i--) {
        int sum = (n%10) + m[i] + carry;
        n /= 10;
        carry = sum/10;
        m[i] = sum%10;
    }
    // n বা carry বাকি থাকলে আলাদা হ্যান্ডলিং লাগে (এখানে অনুমান করা হয় অ্যারে যথেষ্ট বড়)
}

int main() {
    int n = 679;
    int m[] = {1,9,5,7,1,9}; // 195719
    int sz = sizeof(m)/sizeof(m[0]);
    addNumbers(n, sz, m);
    for (int i=0; i

আউটপুট

196398
  1. C++ তে অ্যারে রিপ্রেজেন্টেড সংখ্যার সাথে ১ যোগ করা

  2. C++ প্রোগ্রাম: সংখ্যা ২টি ট্রায়্যাঙ্গুলার নাম্বারের যোগফল কিনা চেক

  3. C++-এ সংখ্যা গুলোকে তাদের ডিজিট সমষ্টি অনুযায়ী সর্ট করা

  4. C++-এ সম অ্যারে পাজল (Sum Array Puzzle) সমাধান