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

সি প্রোগ্রামিং-এ দুটি অ্যারে দ্বারা প্রতিনিধিত্বকৃত সংখ্যা যোগ করা


একটি সংখ্যা অ্যারে দিয়ে রিপ্রেজেন্ট করা হয় যেন সংখ্যার প্রতিটি ডিজিট অ্যারের একটি এলিমেন্ট হয়। যেমন,

Number 234 in array is {2, 3, 4}.

এমন দুটি সংখ্যা যোগ করতে হলে, লিস্ট সিগনিফিক্যান্ট ডিজিট থেকে যোগ শুরু করতে হয় এবং যোগফল ১০-র চেয়ে বড় হলে ক্যারি প্রপাগেট করতে হয়। তারপর পরের ডিজিটগুলোর জন্য একই প্রক্রিয়া दुहरাতে হয়।

উদাহরণ:

a = {2, 9, 6}
b = {6, 3, 8}
Output: 934

ব্যাখ্যা: লিস্ট সিগনিফিক্যান্ট ডিজিট: ৬+৮ = ১৪ (ক্যারি ১)। পরের ডিজিট: ৯+৩+১ = ১৩ (ক্যারি ১)। পরের ডিজিট: ২+৬+১ = ৯। ফলাফল = ৯৩৪।

অ্যালগরিদম

অ্যারে হিসেবে সংরক্ষিত সংখ্যাগুলোর যোগফল বের করতে হলে প্রথমে চেক করা হয় কোনো সংখ্যাতে বেশি ডিজিট আছে কিনা। থাকলে ছোট সংখ্যার ডিজিট পর্যন্ত যোগ করা হয়, তারপর বড় সংখ্যার বাকি ডিজিটগুলো যোগ করা হয়। যোগ করার সময় ক্যারি ট্র্যাক করা হয়। একে একে ডিজিট যোগ করে ফলাফল অ্যারেতে সংরক্ষণ করা হয় এবং প্রিন্ট করা হয়।

সি++ প্রোগ্রাম

#include <iostream>
using namespace std;

int Sum(int a[], int b[], int n, int m) {
    int sum[n];
    int i = n - 1, j = m - 1, k = n - 1;
    int c = 0, s = 0;
    while (j >= 0) {
        s = a[i] + b[j] + c;
        sum[k] = (s % 10);
        c = s / 10;
        k--; i--; j--;
    }
    while (i >= 0) {
        s = a[i] + c;
        sum[k] = (s % 10);
        c = s / 10;
        i--; k--;
    }
    for (int i = 0; i <= n-1; i++)
        cout << sum[i];
}

int main() {
    int a[] = {5, 6, 9};
    int b[] = {3, 8};
    int n = sizeof(a) / sizeof(a[0]);
    int m = sizeof(b) / sizeof(b[0]);
    cout << "The sum is ";
    if (n >= m)
        Sum(a, b, n, m);
    else
        Sum(b, a, m, n);
    return 0;
}

আউটপুট

The sum is 607

  1. জাভা প্রোগ্রাম: দুটি কমপ্লেক্স নম্বর যোগ করা

  2. জাভা প্রোগ্রাম: দুটি নম্বর যোগ করা

  3. পাইথনে স্ট্রিং হিসেবে দেওয়া দুটি সংখ্যা যোগ করার প্রোগ্রাম

  4. পাইথনে দুটি বড় সংখ্যা যোগ করা