ধরুন আমাদের একটি অ্যারে 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