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

C++ का उपयोग करके दी गई संख्या का स्लोप (ढलान) ज्ञात करना

समस्या विवरण

इस समस्या में, हमें एक संख्या N दी गई है। हमारा कार्य दी गई संख्या का स्लोप (ढलान) ज्ञात करना है।

संख्या का स्लोप संख्या में मैक्सिमा और मिनिमा अंकों की कुल संख्या है।

मैक्सिमा अंक वह अंक है जिसके दोनों पड़ोसी (पिछला और अगला) उससे छोटे हैं।

मिनिमा अंक वह अंक है जिसके दोनों पड़ोसी (पिछला और अगला) उससे बड़े हैं।

उदाहरण

इनपुट

N = 9594459

आउटपुट

2

व्याख्या: अंक 5 (पहला) एक मैक्सिमा है (9 > 5 < 9), और अंक 4 (दूसरा) एक मिनिमा है (5 > 4 < 5)।

हल का दृष्टिकोण

समस्या का एक सरल समाधान संख्या को अंक दर अंक पार करना है, पहले और अंतिम अंक को छोड़कर (क्योंकि वे मैक्सिमा या मिनिमा नहीं बनाते)। अब, प्रत्येक अंक के लिए, हम जांचेंगे कि क्या अंक उसके पहले और बाद के अंकों से बड़ा या छोटा है। अंत में, हम मैक्सिमा और मिनिमा की गिनती वापस करेंगे।

एल्गोरिदम

  1. संख्या को स्ट्रिंग के रूप में लें
  2. इंडेक्स 1 से len-2 तक लूप करें
  3. प्रत्येक अंक के लिए जांचें:
    • यदि digit[i] > digit[i-1] और digit[i] > digit[i+1] → मैक्सिमा
    • यदि digit[i] < digit[i-1] और digit[i] < digit[i+1] → मिनिमा
  4. गिनती बढ़ाएं
  5. कुल गिनती वापस करें

C++ कार्यान्वयन

#include <iostream> 
#include <string> 
using namespace std; 

int findNumberSlope(string N, int len) {
    int slope = 0;
    for (int i = 1; i < len - 1; i++) {
        if (N[i] > N[i - 1] && N[i] > N[i + 1])
            slope++;
        else if (N[i] < N[i - 1] && N[i] < N[i + 1])
            slope++;
    }
    return slope;
}

int main() {
    string N = "574473434329";
    int len = N.size();
    cout << "दी गई संख्या का स्लोप है " << findNumberSlope(N, len);
    return 0;
}

आउटपुट

दी गई संख्या का स्लोप है 7

जटिलता विश्लेषण

  • समय जटिलता: O(n) जहां n अंकों की संख्या है
  • स्पेस जटिलता: O(1) अतिरिक्त स्पेस

महत्वपूर्ण बिंदु

  • पहला और अंतिम अंक कभी भी मैक्सिमा/मिनिमा नहीं हो सकते क्योंकि उनके केवल एक पड़ोसी होते हैं
  • लगातार समान अंक न तो मैक्सिमा होते हैं और न ही मिनिमा
  • समाधान संख्या को स्ट्रिंग के रूप में मानकर बड़ी संख्याओं के लिए भी काम करता है
  1. C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना

    इस लेख में, आप एक दी गई स्ट्रिंग में बनने वाले सबस्ट्रिंग्स (गैर-खाली) की संख्या निकालने के दृष्टिकोण के बारे में जानेंगे।इनपुट: string = moon आउटपुट: 10 व्याख्या: सबस्ट्रिंग्स हैं m, o, o, n, mo, oo, on, moo, oon और moon। इनपुट: string = yellow आउटपुट: 21समाधान खोजने का दृष्टिकोणमान लें स्ट्रिंग की

  1. C++ का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात करें C++ का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात करें

    बिंदु X और Y के बीच n संख्या में इंटरमीडिएट ट्रेन स्टेशन हैं। उन विभिन्न तरीकों की गणना करें जिनसे ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई दो स्टेशन एक-दूसरे के बगल में न हों। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या ज्ञात करने के लिए हर संभव दृष्टिकोण की व्य

  1. C++ का उपयोग करके दिए गए बिंदुओं से संभावित चतुर्भुजों की संख्या ज्ञात करें C++ का उपयोग करके दिए गए बिंदुओं से संभावित चतुर्भुजों की संख्या ज्ञात करें

    यूक्लिडियन प्लेन ज्यामिति में एक चतुर्भुज चार शीर्षों और चार किनारों के साथ एक बहुभुज बनाता है। नाम 4-gon आदि। चतुर्भुजों के अन्य नामों में शामिल हैं और कभी-कभी उन्हें वर्ग, डिस्प्ले स्टाइल आदि के रूप में भी जाना जाता है।इस लेख में, हम दिए गए बिंदुओं से संभावित चतुर्भुजों की संख्या ज्ञात करने के दृष