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

দেওয়া অ্যারে নির্মাণে সাফিক্স ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেশনের গণনা (C++ প্রোগ্রাম)

আমাদের একটি টার্গেট অ্যারে arr[] দেওয়া আছে যেটিতে ধনাত্মক পূর্ণসংখ্যা রয়েছে। লক্ষ্য হল টার্গেট অ্যারে arr[] কে শূন্য ভরা একটি প্রাথমিক অ্যারে থেকে নির্মাণ করা। দেওয়া খালি অ্যারেতে যেসব অপেরেশন প্রয়োগ করা যাবে সেগুলো হল সাফিক্স ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেশন।

যদি আমরা কোনো ইনডেক্স i বেছে নিই, তবে সাফিক্স ইনক্রিমেন্ট অপারেশনে আমরা ইনডেক্স i থেকে শেষ ইনডেক্স পর্যন্ত সকল উপাদানে ১ যোগ করব।

সাফিক্স ডিক্রিমেন্ট অপারেশনে আমরা ইনডেক্স i থেকে শেষ ইনডেক্স পর্যন্ত সকল উপাদান থেকে ১ বিয়োগ করব।

উদাহরণ

ইনপুট: arr[] = {1, 2, 3}

আউটপুট: দেওয়া অ্যারে নির্মাণে সাফিক্স ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেশনের গণনা: 3

ব্যাখ্যা:

{0, 0, 0} থেকে শুরু
ইনডেক্স ০ বেছে নিলে, সাফিক্স ইনক্রিমেন্ট: {1, 1, 1}
ইনডেক্স ১ বেছে নিলে, সাফিক্স ইনক্রিমেন্ট: {1, 2, 2}
ইনডেক্স ২ বেছে নিলে, সাফিক্স ইনক্রিমেন্ট: {1, 2, 3}
মোট অপারেশন = ৩

ইনপুট: arr[] = {1, 4, 5, 3}

আউটপুট: দেওয়া অ্যারে নির্মাণে সাফিক্স ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেশনের গণনা: 7

ব্যাখ্যা:

{0, 0, 0, 0} থেকে শুরু
ইনডেক্স ০: সাফিক্স ইনক্রিমেন্ট → {1, 1, 1, 1}
ইনডেক্স ১: সাফিক্স ইনক্রিমেন্ট → {1, 2, 2, 2}
ইনডেক্স ১: সাফিক্স ইনক্রিমেন্ট → {1, 3, 3, 3}
ইনডেক্স ১: সাফিক্স ইনক্রিমেন্ট → {1, 4, 4, 4}
ইনডেক্স ২: সাফিক্স ইনক্রিমেন্ট → {1, 4, 5, 5}
ইনডেক্স ৩: সাফিক্স ডিক্রিমেন্ট → {1, 4, 5, 4}
ইনডেক্স ৩: সাফিক্স ডিক্রিমেন্ট → {1, 4, 5, 3}
মোট অপারেশন = ৭
প্রোগ্রামে ব্যবহৃত পদ্ধতি

যদি আমরা প্রাথমিক অ্যারে B[] নিই। প্রথম উপাদান B[0] কে arr[0] বানাতে arr[0] সংখ্যক সাফিক্স ইনক্রিমেন্ট অপারেশন লাগবে। এর পর B[0]=B[1]....=B[n-1]=arr[0] সব সমান হয়ে যাবে।

দ্বিতীয় উপাদান B[1] কে arr[1] বানাতে |arr[1]-arr[0]| সংখ্যক অপারেশন লাগবে (ইনক্রিমেন্ট বা ডিক্রিমেন্ট)।

তাই B[i] কে arr[i] বানাতে |arr[i] - arr[i-1]| সংখ্যক অপারেশন লাগবে।

মোট অপারেশনের গণনা = |arr[0]| + |arr[1]-arr[0]| + ... + |arr[n-1]-arr[n-2]|।

  • টার্গেট অ্যারে arr[] নিন।
  • incr_decr_op(int arr[], int size) ফাংশন অ্যারে এবং এর দৈর্ঘ্য নেয় এবং সাফিক্স ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেশনের গণনা ফেরত দেয়।
  • আরম্ভিক গণনা ০ নিন।
  • for লুপ দিয়ে অ্যারে arr[] ট্রভার্স করুন।
  • ইনডেক্স ০ এর জন্য arr[i] কে count-এ যোগ করুন।
  • অন্য ইনডেক্সের জন্য abs(arr[i]-arr[i-1]) কে count-এ যোগ করুন।
  • for লুপ শেষে count ফলাফল হিসেবে ফেরত দিন।
C++ প্রোগ্রাম উদাহরণ
#include 
using namespace std;

int incr_decr_op(int arr[], int size) {
    int count = 0;
    for (int i = 0; i < size; i++) {
        if (i > 0) {
            count += abs(arr[i] - arr[i - 1]);
        } else {
            count = count + abs(arr[i]);
        }
    }
    return count;
}

int main() {
    int arr[] = {3, 3, 1, 2, 2};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "Count of suffix increment/decrement operations to construct a given array are: " << incr_decr_op(arr, size) << endl;
    return 0;
}
আউটপুট
Count of suffix increment/decrement operations to construct a given array are: 6
  1. C++-এ Mটি রেঞ্জ ইনক্রিমেন্ট অপারেশনের পর অ্যারেতে সর্বোচ্চ মান

  2. C++-এ অ্যারেতে দুটি দেওয়া উপাদানের মধ্যস্থ উপাদান গণনা

  3. C++-এ অ্যারেতে স্বতন্ত্র উপাদান গণনা

  4. C++-এ দেওয়া অ্যারে-এর последователь উপাদানগুলোর GCD থেকে অ্যারে তৈরি