एक ऐरे दिया गया है, ऐरे में न्यूनतम संख्या (जो 0 से बड़ी होनी चाहिए) जोड़ें ताकि ऐरे का योग सम हो जाए।
इनपुट - 1 2 3 4,
आउटपुट - 2
व्याख्या - ऐरे का योग 10 है, इसलिए हम
न्यूनतम संख्या 2 जोड़ते हैं ताकि योग सम हो जाए।
विधि 1: ऐरे के सभी एलिमेंट्स का योग निकालें, फिर जांचें कि क्या योग सम है तो न्यूनतम संख्या 2 है, अन्यथा न्यूनतम संख्या 1 है।
इनपुट - 1 2 3 4,
आउटपुट - 2
व्याख्या - ऐरे का योग 10 है, इसलिए हम न्यूनतम संख्या 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
विधि 2 - ऐरे में विषम संख्या के एलिमेंट्स की गिनती निकालें। यदि विषम संख्याओं की गिनती सम है तो हम 2 लौटाते हैं, अन्यथा हम 1 लौटाते हैं।
इनपुट - 1 2 3 4 5
आउटपुट - 1
व्याख्या - ऐरे में विषम संख्याओं की संख्या 3 है
न्यूनतम संख्या 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;
}
विधि 3 - एक फ्लैग वेरिएबल लें (0 के रूप में इनिशियलाइज़्ड)। जब भी हम ऐरे में विषम एलिमेंट ढूंढते हैं तो हम बूलियन वेरिएबल पर NOT(!) ऑपरेशन करते हैं। यह तार्किक ऑपरेटर फ्लैग वेरिएबल के मान को उलट देता है (अर्थात यदि यह 0 है, तो वेरिएबल को 1 में बदल देता है और इसके विपरीत)।
इनपुट - 1 2 3 4 5
आउटपुट - 1
व्याख्या - वेरिएबल 0 के रूप में इनिशियलाइज़्ड।
ऐरे को पार करना
1 विषम है, वेरिएबल 1 में बदला।
2 सम है
3 विषम है, वेरिएबल 0 में बदला।
4 सम है
5 विषम है, वेरिएबल 1 में बदला
यदि वेरिएबल का मान 1 है तो इसका मतलब विषम संख्या में विषम एलिमेंट्स मौजूद हैं, एलिमेंट्स के योग को सम बनाने के लिए न्यूनतम संख्या 1 जोड़ना है।
अन्यथा न्यूनतम संख्या 2 है।
उदाहरण
#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;
}