কম্পিউটার

C++-এ অ্যারের GCD-কে k-এর গুণিতক করার জন্য ন্যূনতম ক্রিয়াকলাপ


ধরুন আমাদের একটি অ্যারে arr এবং আরেকটি মান k আছে। অ্যারের GCD কে k এর গুণিতকের সমান করতে আমাদের ন্যূনতম সংখ্যক ক্রিয়াকলাপ খুঁজে বের করতে হবে। এই ক্ষেত্রে, অপারেশন মান বাড়ছে বা কমছে। ধরুন অ্যারেটি হল {4, 5, 6}, এবং k হল 5। আমরা 4 কে 1 দিয়ে বাড়াতে পারি, এবং 6 কে 1 দিয়ে কমাতে পারি, তাহলে এটি 5 হয়ে যায়। এখানে কয়েকটি ক্রিয়াকলাপ হল 2।

ফলাফল −

পেতে আমাদের এই ধাপগুলি অনুসরণ করতে হবে

পদক্ষেপ

  • অ্যারের সমস্ত উপাদানের জন্য, ধাপ 2 এবং 3 অনুসরণ করুন
  • যদি e 1 না হয়, এবং e> k হয়, তাহলে (e mod k) এবং (k – e mod k) হিসাবে ফলাফল বাড়ান।
  • অন্যথায়, ফলাফল হবে ফলাফল + k – e
  • ফলাফল

উদাহরণ

#include <iostream>
using namespace std;
int countMinOp(int arr[], int n, int k) {
   int result = 0;
   for (int i = 0; i < n; ++i) {
      if (arr[i] != 1 && arr[i] > k) {
         result = result + min(arr[i] % k, k - arr[i] % k);
      } else {
         result = result + k - arr[i];
      }
   }
   return result;
}
int main() {
   int arr[] = { 4, 5, 6 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 5;
   cout << "Minimum operation required: " << countMinOp(arr, n, k);
}

আউটপুট

Minimum operation required: 2

  1. C++ এ অ্যারের XOR-কে শূন্য করার জন্য ন্যূনতম অপারেশন

  2. C++ ব্যবহার করে সমস্ত উপাদান 0 করতে একটি অ্যারেতে ন্যূনতম সংখ্যক অপারেশন।

  3. C++ এ একটি কো-প্রাইম অ্যারে তৈরি করতে ন্যূনতম সন্নিবেশ

  4. C++-এ অ্যারের সমস্ত উপাদান একই করতে ন্যূনতম ডিলিট অপারেশন।