একটি অ্যারে দেওয়া আছে, অ্যারেতে ন্যূনতম সংখ্যা (যেটি ০-র চেয়ে বড় হতে হবে) যোগ করুন যাতে অ্যারের যোগফল জোড় হয়।
ইনপুট - 1 2 3 4,
আউটপুট - 2
ব্যাখ্যা - অ্যারের যোগফল ১০, তাই আমরা
ন্যূনতম সংখ্যা ২ যোগ করি যাতে যোগফল জোড় হয়।
পদ্ধতি ১: অ্যারের সব এলিমেন্টের যোগফল বের করুন, তারপর চেক করুন যোগফল জোড় কিনা। যদি জোড় হয়, তবে ন্যূনতম সংখ্যা ২, অন্যথায় ১।
ইনপুট - 1 2 3 4,
আউটপুট - 2
ব্যাখ্যা - অ্যারের যোগফল ১০, তাই ন্যূনতম সংখ্যা ২ যোগ করি যাতে যোগফল জোড় হয়।
উদাহরণ
#include<iostream> using namespace std; int main() { int arr[] = { 1, 2, 3, 4}; int n=4; int sum=0; for (int i = 0; i <n; i++) { sum+=arr[i]; } if (sum % 2==0) { cout <<"2"; } else { cout <<"1"; } return 0; }
পদ্ধতি ২ - অ্যারেতে বিজোড় সংখ্যক এলিমেন্টের কাউন্ট বের করুন। যদি বিজোড় সংখ্যার কাউন্ট জোড় হয়, তবে ২ রিটার্ন করুন, অন্যথায় ১।
ইনপুট - 1 2 3 4 5
আউটপুট - 1
ব্যাখ্যা - অ্যারেতে বিজোড় সংখ্যার সংখ্যা ৩
যোগফল জোড় করার জন্য ন্যূনতম সংখ্যা ১ যোগ করুন।
উদাহরণ
#include<iostream> using namespace std; int main() { int arr[] = { 1, 2, 3, 4,5}; int n=5; int odd = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2!=0) { odd += 1; } } if (odd % 2==0) { cout <<"2"; } else { cout <<"1"; } return 0; }
পদ্ধতি ৩ - একটি ফ্ল্যাগ ভেরিয়েবল নিন (ইনিশিয়ালাইজড ০)। যতক্ষণ অ্যারেতে বিজোড় এলিমেন্ট পাবেন, বুলিয়ান ভেরিয়েবলে NOT(!) অপারেশন করুন। এই লজিক্যাল অপারেটর ফ্ল্যাগ ভেরিয়েবলের মান উল্টিয়ে দেবে (অর্থাৎ ০ হলে ১, ১ হলে ০)।
ইনপুট - 1 2 3 4 5
আউটপুট - 1
ব্যাখ্যা - ভেরিয়েবল ০ হিসেবে ইনিশিয়ালাইজড।
অ্যারে ট্রাভার্স
১ বিজোড়, ভেরিয়েবল ১ হয়েছে।
২ জোড়
৩ বিজোড়, ভেরিয়েবল ০ হয়েছে।
৪ জোড়
৫ বিজোড়, ভেরিয়েবল ১ হয়েছে।
যদি ভেরিয়েবলের মান ১ হয়, মানে বিজোড় সংখ্যক বিজোড় এলিমেন্ট আছে, যোগফল জোড় করার জন্য ন্যূনতম ১ যোগ করতে হবে।
অন্যথায় ন্যূনতম সংখ্যা ২।
উদাহরণ
#include<iostream> using namespace std; int main() { int arr[] = { 1, 2, 3, 4,5}; int n=5; bool odd = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2!=0) { odd = !odd; } } if (odd) { cout <<"1"; } else { cout <<"2"; } return 0; }