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