এই সমস্যায় আমাদের একটি অ্যারে arr[] দেওয়া হয়েছে যাতে n সংখ্যক ধনাত্মক মান রয়েছে। আমাদের কাজ হলো বাকি সব উপাদানের যোগফলের সমান উপাদান বের করা।
কোড বিবরণ: আমাদের সেই উপাদানটি বের করতে হবে যার মান অ্যারের সকল উপাদানের যোগফলের সমান (সেই উপাদান বাদে)।
উদাহরণ দিয়ে বুঝি
ইনপুট: arr[] = { 5, 4, 17, 1, 7 }
আউটপুট: 17
ব্যাখ্যা -
বাকি উপাদানগুলোর যোগফল (5 + 4 + 1 + 7 ) = 17, যা বাকি উপাদান 17-এর সমান।
সমাধানের পদ্ধতি
একটি সহজ সমাধান হলো এই তথ্য ব্যবহার করা যে অ্যারের সব উপাদানের যোগফল দেওয়া উপাদানের দ্বিগুণ। এর জন্য নিচের ধাপগুলো অনুসরণ করব,
ধাপ ১: অ্যারের সব উপাদানের যোগফল বের করুন।
ধাপ ২: অ্যারের প্রতিটি উপাদানের জন্য লুপ চালান,
ধাপ ২.১: যদি arr[i] == sum/2।
ধাপ ২.১.১: যদি সত্য হয়। Flag = 1, লুপ ব্রেক করুন।
ধাপ ২.২.১: যদি মিথ্যা হয়, অগ্রসর হন।
ধাপ ৩: যদি flag == 1, arr[i] প্রিন্ট করুন
ধাপ ৪: অন্যথায়, "No such element found!" প্রিন্ট করুন।
সমাধান minhaj করার প্রোগ্রাম
#include <iostream>
using namespace std;
void findElemenetInArray(int arr[], int n) {
int arraySum = 0;
int flag = 0, i;
for (i = 0; i < n; i++)
arraySum += arr[i];
for (i = 0; i < n; i++)
if ( (2*arr[i]) == arraySum ) {
flag = 1;
break;
}
if(flag)
cout << arr[i];
else
cout << "No such element is found!";
}
int main() {
int n = 5;
int arr[n] = { 5, 4, 7, 1, 17 };
findElemenetInArray(arr, n);
return 0;
}
আউটপুট
17