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

C++-এ অ্যারে এলিমেন্ট এবং একটি সংখ্যার গড়ের অকারেন্স সংখ্যা গণনা


একটি অ্যারে arr[] দেওয়া আছে যাতে ইন্টিজার এলিমেন্ট আছে এবং একটি ইন্টিজার num। লক্ষ্য হলো প্রতিটি এলিমেন্ট arr[i] এবং num-এর গড় বের করে সেটি মূল অ্যারেতে কতবার এসেছে সেটি প্রিন্ট করা।

যদি অ্যারে arr[] = [5, 2, 3] এবং num = 2 হয়। গড়গুলো হবে [3, 2, 2] এবং arr[]-এ অকারেন্স [1,1,1]।

উদাহরণ ১

ইনপুট

arr[] = { 1, 6, 4, 3, 6, 4 } num=2

আউটপুট

1 2 1 0 2 1
অ্যারে এলিমেন্ট এবং একটি সংখ্যার গড়ের অকারেন্স সংখ্যা: 5

ব্যাখ্যা

num ৪ এবং arr[]-এর সকল সংখ্যার সাথে গড়: [1, 4, 3, 2, 4, 3] arr[]-এ অকারেন্স: [1, 2, 1, 0, 2, 1]

উদাহরণ ২

ইনপুট

arr[] = { 4, 8, 24, 16, 20, 40 } num=4

আউটপুট

1 0 0 0 0 0
অ্যারে এলিমেন্ট এবং একটি সংখ্যার গড়ের অকারেন্স সংখ্যা: 1

ব্যাখ্যা

num ৪ এবং arr[]-এর সকল সংখ্যার সাথে গড়: [4, 6, 14, 10, 12, 22] arr[]-এ অকারেন্স: [1, 0, 0, 0, 0, 0]

প্রয়োগ করা পদ্ধতি

এই পদ্ধতিতে একটি ম‍‍্যাপ তৈরি করা হয় গড় এবং তাদের মূল অ্যারেতে কাউন্ট সংরক্ষণের জন্য। এই কাউন্টগুলো আলাদা অ্যারেতে যোগ করা হয় প্রিন্ট করার জন্য।

  • ইন্টিজার টাইপের arr[] নিন।

  • ইনপুট num ইন্টিজার হিসেবে নিন।

  • occurrence_average(int arr[], int size, int num) ফাংশনটি ইনপুট অ্যারে এবং num নিয়ে গড়ের অকারেন্স অ্যারে প্রিন্ট করে। এটি নন-জিরো অকারেন্সের কাউন্ট রিটার্ন করে।

  • আরম্ভিক কাউন্ট ০।

  • map map_pair নিন arr[]-এ ইউনিক সংখ্যাগুলোর কাউন্ট রাখার জন্য।

  • total[] অ্যারে নিন প্রতিটি গড়ের কাউন্ট রাখার জন্য।

  • for লুপ দিয়ে i=0 থেকে i পর্যন্ত arr[] ট্রুভার্স করুন। প্রতিটি এলিমেন্টের জন্য map_pair[arr[i]]++ দিয়ে ভ্যালু বাড়ান।

  • লুপ শেষে ইউনিক সংখ্যাগুলো কি হিসেবে এবং তাদের কাউন্ট ভ্যালু হিসেবে থাকবে।

  • আরেকবার অ্যারে ট্রুভার্স করুন for লুপ দিয়ে num-এর সাথে প্রতিটি এলিমেন্টের গড় ক্যালকুলেট করে temp-এ রাখুন।

  • যদি সেটি map_pair-এ পাওয়া যায় (map_pair.find(temp) != map_pair.end()), তবে total অ্যারেতে যোগ করুন।

  • total অ্যারে প্রিন্ট করুন গড়ের অকারেন্স কাউন্টের জন্য। প্রতিটি নন-জিরো এলিমেন্টের জন্য কাউন্ট বাড়ান।

  • কাউন্ট রিটার্ন করুন ফলাফল হিসেবে।

উদাহরণ কোড

#include<bits/stdc++.h> 
using namespace std; 

int occurrence_average(int arr[], int size, int num) {
    int count = 0; 
    map<int,int> map_pair; 
    int total[size] = {0}; 
    int val, av; 
    
    for (int i = 0; i < size; i++) {
        if (map_pair[arr[i]] == 0) {
            map_pair[arr[i]] = 1; 
        } else {
            map_pair[arr[i]]++; 
        } 
    } 
    
    for (int i = 0; i < size; i++) {
        int temp = int((arr[i] + num) / 2); 
        if(map_pair.find(temp) != map_pair.end()) {
            int set = map_pair[temp]; 
            total[i] = set; 
        } 
    } 
    
    cout << endl; 
    for(int i=0; i 0) {
            count++; 
        } 
    } 
    
    return count; 
} 

int main() { 
    int arr[] = { 4, 8, 24, 16, 20, 40 }; 
    int size = sizeof(arr)/sizeof(arr[0]); 
    int num = 4; 
    cout << endl << "অ্যারে এলিমেন্ট এবং একটি সংখ্যার গড়ের অকারেন্স সংখ্যা: " << occurrence_average(arr, size, num); 
}

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি আসবে:

অ্যারে এলিমেন্ট এবং একটি সংখ্যার গড়ের অকারেন্স সংখ্যা: 1 0 0 0 0 0 1

  1. C++-এ অ্যারেতে যেসব স্বতন্ত্র জোড়ার যোগফল অ্যারেতেই আছে তাদের গণনা

  2. C++-এ অ্যারেতে দুটি দেওয়া উপাদানের মধ্যস্থ উপাদান গণনা

  3. C++-এ দেওয়া স্টিক সেট থেকে সম্ভাব্য রেক্ট্যাঙ্গেল ও স্কোয়ারের সংখ্যা

  4. C++-এ অ্যারেতে জোড় ও বিজোড় উপাদান গণনা (Count Even and Odd Elements in Array)