কম্পিউটার টিউটোরিয়াল

সি++-এ বাকি সব উপাদানের যোগফলের সমান উপাদান বের করা


এই সমস্যায় আমাদের একটি অ্যারে 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
  1. সি++-এ অনির্দেশিত গ্রাফের কানেক্টেড কম্পোনেন্টগুলোর মিনিমাম এলিমেন্টের যোগফল

  2. C++ প্রোগ্রাম: তিনটি এলিমেন্টের মধ্যে সবচেয়ে ছোট এলিমেন্ট বের করা

  3. C++-এ অ্যারের সব উপাদানে XOR অপারেশন প্রয়োগ করে অ্যারে যোগফল ন্যূনীকরণ

  4. পাইথনে অ্যারেতে যেকোনো এলিমেন্ট বাকি সব এলিমেন্টের যোগফলের সমান কিনা