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

C++ में सम सूचकांक पर सम संख्याएं और विषम सूचकांक पर विषम संख्याएं


इस समस्या में, हमें आकार n की एक सरणी arr[] दी गई है जिसमें n/2 सम मान और n/2 विषम मान हैं। हमारा कार्य सम संख्याओं को सम सूचकांक पर और विषम संख्याओं को विषम सूचकांक पर रखने के लिए एक प्रोग्राम बनाना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: arr[] = {5, 1, 6, 4, 3, 8}

आउटपुट: arr[] = {6, 1, 5, 4, 3, 8}

समाधान दृष्टिकोण

एक समाधान सरणी को ट्रैवर्स करना और फिर उस अंतिम संख्या को ढूंढना होगा जो सम स्थिति पर नहीं है और इसे अगले गलत स्थान वाले मान से बदलना होगा। यह एक आशाजनक समाधान है लेकिन समाधान को दो सूचकांकों का उपयोग करके अधिक कुशल बनाया जा सकता है, एक सम के लिए और एक विषम के लिए। यदि सम सूचकांक पर कोई तत्व है जो सम नहीं है और एक विषम तत्व है जो विषम सूचकांक पर नहीं है, तो हम उन्हें स्वैप करेंगे अन्यथा दोनों सूचकांकों को दो से बढ़ाएंगे।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <iostream>
using namespace std;

void O_EReshuffle(int arr[], int n) {
    int oIndex = 1;
    int eIndex = 0;
    for(int i = 0; i < n; ) {
        while (eIndex < n && arr[eIndex] % 2 == 0)
            eIndex += 2;
        while (oIndex < n && arr[oIndex] % 2 == 1)
            oIndex += 2;
        if (eIndex < n && oIndex < n)
            swap (arr[eIndex], arr[oIndex]);
        else
            break;
    }
}

int main() {
    int arr[] = { 5, 1, 6, 4, 3, 8 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Array before Reshuffling: ";
    for(int i = 0; i < n ; i++){
        cout<<arr[i]<<"\t";
    }
    O_EReshuffle(arr, n);
    cout<<"\nArray after Reshuffling: ";
    for(int i = 0; i < n ; i++){
        cout<<arr[i]<<"\t";
    };
    return 0;
}

आउटपुट

Array before Reshuffling: 5 1 6 4 3 8 Array after Reshuffling: 4 1 6 5 8 3

  1. C++ में विषम और सम संख्या में नोड्स वाले सभी स्तर प्रिंट करें C++ में विषम और सम संख्या में नोड्स वाले सभी स्तर प्रिंट करें

    इस समस्या में, हमें एक ट्री दिया गया है। और हमें उन सभी स्तरों को प्रिंट करना है जिनमें सम संख्या में नोड्स और विषम संख्या में नोड्स हैं। अवधारणा को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं आउटपुट - विषम संख्या में नोड्स वाले स्तर: 1, 3, 4 सम संख्या में नोड्स वाले स्तर: 2 व्याख्या - पहले स्तर म

  1. - सम इंडेक्स वाले द्विपद गुणांकों का योग खोजें C++ में

    मान लीजिए हमारे पास एक संख्या n है, हमें सम इंडेक्स वाले द्विपद गुणांकों का योग खोजना है जैसे $$\left(\begin{array}{c}n\\ 0\end{array}\right)+\left(\begin{array}{c}n\\ 2\end{array}\right)+\left(\begin{array}{c}n\\ 4\end{array}\right)+\left(\begin{array}{c}n\\ 6\end{array}\right)+...\left(\begin{arra

  1. - C++ में सरणी इंडेक्स जहां दोनों तरफ सम या विषम संख्याओं की गिनती समान हो

    यहां हम एक समस्या देखेंगे, मान लीजिए एक सरणी दी गई है। इसमें n तत्व हैं। हमें एक इंडेक्स ढूंढना है, जहां उसके बाईं ओर सम संख्याओं की आवृत्ति और उसके दाईं ओर सम संख्याओं की आवृत्ति समान हो, या उसके बाईं ओर विषम संख्याओं की आवृत्ति उसके दाईं ओर विषम संख्याओं की आवृत्ति के समान हो। यदि ऐसा कोई परिणाम न