একটি অ্যারে দেওয়া থাকলে, সেটিতে কতটি ন্যূনতম সংখ্যা যোগ করলে সব উপাদানের যোগফল জোড় হবে তা নির্ণয় করতে হবে। যোগ করা সংখ্যা অবশ্যই ০-র চেয়ে বড় হতে হবে। যদি যোগফল বিজোড় হয়, তবে ১ যোগ করলেই জোড় হবে; আর যদি যোগফল ইতিমধ্যে জোড় হয়, তবে ২ যোগ করতে হবে যাতে সেটি জোড়ই থাকে।
অ্যালগরিদম
addMinNumber(arr)
শুরু
s := 0
arr-এর প্রতিটি উপাদান e এর জন্য, করুন
s := e + s
শেষ করুন
যদি s জোড় হয়, তবে ২ ফেরত দিন, অন্যথায় ১
শেষ
উদাহরণ কোড
#include <iostream>
using namespace std;
int addMinNumber(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return (sum % 2) ? 1 : 2;
}
int main() {
int arr[] = {5, 8, 4, 7, 5};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Minimum " << addMinNumber(arr, n) << " should be added";
return 0;
}
আউটপুট
Minimum 1 should be added