Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम: हिस्टोग्राम में सबसे बड़ा आयताकार क्षेत्र ज्ञात करना


यह एक C++ प्रोग्राम है जो हिस्टोग्राम में सबसे बड़ा आयताकार क्षेत्र ज्ञात करता है।

फंक्शन getArea() का एल्गोरिदम:

Begin    एक खाली स्टैक बनाएं।    largest_area इनिशियलाइज़ करें।    पहले बार से शुरू करके हर बार hist[i] के लिए एक व्हाइल लूप करें, जहां i = 0 से n से कम:    यदि स्टैक खाली है या hist[i] स्टैक के शीर्ष पर बार से अधिक ऊंचा है, तो       'i' को स्टैक में पुश करें।    अन्यथा       यह बार स्टैक के शीर्ष से छोटा है, तो तब तक स्टैक के शीर्ष को हटाते रहें जब तक स्टैक का शीर्ष अधिक है। सबसे छोटे बार के साथ आयत का क्षेत्रफल ज्ञात करें। स्टैक में शीर्ष से पहले का एलिमेंट बाएं इंडेक्स के लिए है और i शीर्ष के लिए दाएं इंडेक्स है।    यदि स्टैक खाली नहीं है तो स्टैक से शेष बार को पॉप करें और प्रत्येक पॉप किए गए बार को सबसे छोटे बार के रूप में क्षेत्रफल की गणना करें। End

उदाहरण कोड

#include<iostream> #include<stack> using namespace std; int getArea(int hist[], int n) {    stack<int> st;    int largest_area = 0;    int top;    int toparea;    int i = 0;    while (i < n)    {       if (st.empty() || hist[st.top()] <= hist[i])       st.push(i++);       else       {          top = st.top();          st.pop();          toparea = hist[top] * (st.empty() ? i :          i - st.top() - 1);          if (largest_area < toparea)          largest_area = toparea;       }    }    while (st.empty() == false)    {       top = st.top();       st.pop();       toparea = hist[top] * (st.empty() ? i :       i - st.top() - 1);       if (largest_area < toparea)       largest_area = toparea;    }    return largest_area; } int main() {    int hist[] = {6,7,4,5,3,2};    int n = sizeof(hist)/sizeof(hist[0]);    cout << "Largest area is " << getArea(hist, n);    return 0; }

आउटपुट

Largest area is 16
  1. C++ में दीर्घवृत्त में अंतर्निहित सबसे बड़े वृत्त का क्षेत्रफल ज्ञात करें C++ में दीर्घवृत्त में अंतर्निहित सबसे बड़े वृत्त का क्षेत्रफल ज्ञात करें

    मान लीजिए हमारे पास एक दीर्घवृत्त है, जिसकी प्रमुख और लघु अक्ष की लंबाई 2a और 2b है। हमें इसमें अंतर्निहित सबसे बड़े वृत्त का क्षेत्रफल ढूंढना है। इसलिए यदि a = 5 और b = 3, तो क्षेत्रफल 28.2734 होगा। हम देख सकते हैं कि दीर्घवृत्त में अंतर्निहित अधिकतम क्षेत्रफल वाले वृत्त की त्रिज्या लघु अक्ष b होग

  1. C++ का उपयोग करके एलिप्स का क्षेत्रफल ज्ञात करना C++ का उपयोग करके एलिप्स का क्षेत्रफल ज्ञात करना

    यहां हम देखेंगे कि C++ का उपयोग करके एलिप्स का क्षेत्रफल कैसे प्राप्त किया जाए। एलिप्स के विभिन्न भाग होते हैं। ये नीचे दिए गए हैं।मुख्य बिंदुविवरणसेंटरएलिप्स का केंद्र। यह उन लाइन सेगमेंट्स का भी केंद्र है जो दो फोकी को जोड़ते हैं।मेजर एक्सिसएलिप्स का सबसे लंबा व्यासnmembयह एलिमेंट्स की संख्या है,

  1. हिस्टोग्राम के नीचे सबसे बड़े आयत का क्षेत्रफल ज्ञात करने का पायथन प्रोग्राम हिस्टोग्राम के नीचे सबसे बड़े आयत का क्षेत्रफल ज्ञात करने का पायथन प्रोग्राम

    मान लीजिए हमारे पास संख्याओं की एक सूची है जो हिस्टोग्राम में बार की ऊंचाइयों को दर्शाती है। हमें बार के नीचे बनने वाले सबसे बड़े आयत का क्षेत्रफल ढूंढना है। उदाहरण के लिए, यदि इनपुट nums = [3, 2, 5, 7] है, तो आउटपुट 10 होगा। इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे: stk := एक स्टैक और