ধরুন আমাদের একটি অ্যারে arr এবং অন্য একটি মান k আছে। আমাদের অ্যারের GCD কে k-এর গুণিতক বানানোর জন্য ন্যূনতম অপারেশনের সংখ্যা বের করতে হবে। এখানে অপারেশন হচ্ছে মান বাড়ানো বা কমানো। ধরুন অ্যারেটি হল {4, 5, 6}, এবং k হল ৫। আমরা ৪ কে ১ বাড়িয়ে ৫ বানাতে পারি, আর ৬ কে ১ কমিয়ে ৫ বানাতে পারি। এখানে মোট অপারেশন ২টি।
ফলাফল পেতে নিচের ধাপগুলো অনুসরণ করতে হবে:
- অ্যারের সব উপাদান e-এর জন্য ধাপ ২ এবং ৩ অনুসরণ করুন
- যদি e ১ না হয় এবং e > k হয়, তবে ফলাফলে (e mod k) এবং (k - e mod k)-এর ন্যূনতম মান যোগ করুন
- অন্যথায়, ফলাফলে k - e যোগ করুন
- ফলাফল ফেরত দিন
C++ প্রোগ্রাম উদাহরণ
#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);
return 0;
}
আউটপুট
Minimum operation required: 2