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

C++ প্রোগ্রামে অ্যারে আকারে সংরক্ষিত সংখ্যার সাথে ১ যোগ করা (রিকার্সিভ)


ভূমিকা

একটি সংখ্যাকে অ্যারে আকারে সংরক্ষিত করা আছে (প্রতিটি ডিজিট একটি এলিমেন্ট)। এই সংখ্যার সাথে ১ যোগ করতে হবে রিকার্সিভ পদ্ধতিতে। ডিজিট ৯ হলে ০ হয়ে ক্যারি (carry) পরবর্তী ডিজিটে যায়।

উদাহরণ

ইনপুট: 1782698599 (অ্যারে: {9,9,5,8,9,6,2,8,7,1} - রিভার্স অর্ডার)
আউটপুট: 1782698600

এলগরিদম

increment(arr, n, index=0)
শুরু
  যদি index < n:
    যদি arr[index] < 9: arr[index]++, রিটার্ন
    অন্যথায়: arr[index] = 0, increment(arr, n, index+1)
  যদি index == n: arr[n] = 1, n++
শেষ

C++ প্রোগ্রাম উদাহরণ

#include 
#include 
#define MAX 20
using namespace std;

void increment(int arr[], int &n, int index = 0) {
    if (index < n) {
        if (arr[index] < 9) arr[index]++;
        else { arr[index] = 0; increment(arr, n, index+1); }
    }
    if (index == n) { arr[n] = 1; n++; }
}

void display(int arr[], int n) {
    for (int i = n-1; i >= 0; i--) cout << arr[i];
    cout << endl;
}

int numToArr(int arr[], int num) {
    int n = log10(num) + 1;
    for (int i = 0; i < n; i++) {
        arr[i] = num % 10;
        num /= 10;
    }
    return n;
}

int main() {
    int num = 1782698599, arr[MAX];
    int n = numToArr(arr, num);
    cout << "Initial: "; display(arr, n);
    increment(arr, n);
    cout << "Final: "; display(arr, n);
    return 0;
}

আউটপুট

Initial: 1782698599
Final: 1782698600
  1. C#-এ বাইট অ্যারের বাইট কাউন্ট করা

  2. জাভা প্রোগ্রাম: পূর্ণসংখ্যাতে অঙ্কের সংখ্যা গণনা করার পদ্ধতি

  3. পাইথনে অঙ্ক যোগফল এক অঙ্ক হয় পর্যন্ত করার প্রোগ্রাম

  4. পাইথনে অ্যারে সাইক্লিক্যালি এক পজিশন রোটেট করার প্রোগ্রাম