কম্পিউটার

C++ ব্যবহার করে সমস্ত উপাদান X-এর থেকে বড় যেখানে সেগমেন্টের সংখ্যা খুঁজুন


এই প্রবন্ধে, আমাদের একটি প্রদত্ত ক্রমানুসারে সেগমেন্ট বা সাবয়ারের সংখ্যা খুঁজে বের করতে হবে যেখানে প্রদত্ত সংখ্যা X-এর থেকে বড় উপাদান৷

আমরা ওভারল্যাপিং সেগমেন্ট শুধুমাত্র একবার গণনা করতে পারি, এবং দুটি সংলগ্ন উপাদান বা সেগমেন্ট আলাদাভাবে গণনা করা উচিত নয়। তাই এখানে প্রদত্ত সমস্যার মূল উদাহরণ -

Input : arr[ ] = { 9, 6, 7, 11, 5, 7, 8, 10, 3}, X = 7
Output : 3
Explanation : { 9 }, { 11 } and { 8, 10 } are the segments greater than 7

Input : arr[ ] = { 9, 6, 12, 2, 11, 14, 8, 14 }, X = 8
Output : 4
Explanation : { 9 }, { 12 }, { 11, 14 } and { 14 } are the segments greater than 8
এর চেয়ে বড় সেগমেন্ট

সমাধান খোঁজার পদ্ধতি

নিষ্পাপ দৃষ্টিভঙ্গি

এই সমস্যায়, আমরা একটি পরিবর্তনশীল state শুরু করছি 0 দিয়ে এবং প্রদত্ত অ্যারেটি প্রক্রিয়াকরণ শুরু করুন এবং X-এর চেয়ে বড় উপাদান পাওয়া গেলে 1-এ রাজ্য পরিবর্তন করুন এবং উপাদানগুলি প্রক্রিয়াকরণ চালিয়ে যান এবং X-এর চেয়ে কম বা সমান সংখ্যা পাওয়া গেলে স্থিতি 0-এ পরিবর্তন করুন এবং 1-এর সাথে সংখ্যা বৃদ্ধি করুন। প্রতিবার স্টেট 1 এ যায় এবং 0 এ ফিরে যায়।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int main (){
    int a[] = { 9, 6, 12, 2, 11, 14, 8, 14 };
    int n = sizeof (a) / sizeof (a[0]);
    int X = 8;
    int state = 0;
    int count = 0;
    // traverse the array
    for (int i = 0; i < n; i++){
        // checking whether element is greater than X
        if (a[i] > X){
           state = 1;
        }
        else{
           // if flag is true
           if (state)
               count += 1;
            state = 0;
        }
    }
    // checking for the last segment
    if (state)
        count += 1;
    cout << "Number of segments where all elements are greater than X: " << count;
    return 0;
}

আউটপুট

Number of segments where all elements are greater than X: 4

উপরের প্রোগ্রামের ব্যাখ্যা

উপরের প্রোগ্রামে, আমরা স্টেটটিকে একটি সুইচ হিসাবে ব্যবহার করছি, এবং X-এর চেয়ে বড় একটি সংখ্যা পাওয়া গেলে আমরা এটিকে 1 এ সেট করি এবং X-এর চেয়ে কম বা সমান একটি সংখ্যা পাওয়া গেলে এটিকে 0 এ সেট করি এবং প্রতিবার রাজ্যের জন্য 1 এ যায় এবং 0 এ ফিরে আসে আমরা গণনা 1 দ্বারা বৃদ্ধি করি। অবশেষে, গণনায় সংরক্ষিত ফলাফলটি প্রিন্ট করা হয়।

উপসংহার

এই নিবন্ধে, আমরা যখনই একটি সেগমেন্ট পাওয়া যায় তখন 1 এবং 0-এ স্টেট সেট করার পদ্ধতি প্রয়োগ করে সমস্ত উপাদান যেখানে X-এর চেয়ে বড় সেগমেন্টের সংখ্যা খুঁজে বের করার সমস্যার সমাধান করি। আমরা এই প্রোগ্রামটিকে অন্য যেকোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন সি, জাভা, পাইথন ইত্যাদিতে লিখতে পারি।


  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে K-এর থেকে কম সমষ্টির সাবয়ারের সংখ্যা নির্ণয় করুন

  4. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন