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

C++ प्रोग्राम: सरणी में फैक्टरियल का योग ज्ञात करना

मान लें हमारे पास एक सरणी A है, जो क्रमबद्ध है। इसमें सभी तत्व दो बार आते हैं, लेकिन एक तत्व केवल एक बार मौजूद है। हमें उस तत्व को ज्ञात करना है। यदि सरणी [1, 1, 3, 3, 4, 4, 5, 6, 6, 7, 7, 9, 9] है, तो एकल तत्व 5 है।

हम इस समस्या को हल करने के लिए बाइनरी सर्च दृष्टिकोण का उपयोग करेंगे। एकल तत्व से पहले सभी तत्वों का पहला घटना सूचकांक 0, 2, 4, ... पर होता है और पहला घटना सूचकांक 1, 3, 5, ... पर होता है लेकिन एकल तत्व के बाद, पहली संख्या की सभी घटनाएं विषम सूचकांक पर होंगी, और दूसरा तत्व सम सूचकांक स्थानों पर होगा।

इसलिए पहले मध्य सूचकांक mid ज्ञात करें, यदि mid सम है, तो A[mid] और A[mid + 1] की तुलना करें, यदि दोनों समान हैं, तो आवश्यकतानुसार बाएं या दाएं जाएं। अन्यथा जब mid विषम है, तो A[mid] और A[mid - 1] की तुलना करें, यदि वे समान हैं, तो आवश्यकतानुसार बाएं या दाएं जाएं।

उदाहरण

#include <iostream>
using namespace std;

void findSingleElement(int *arr, int left, int right) {
    if (left > right)
        return;
    if (left == right) {
        cout << "The required element is: " << arr[left];
        return;
    }
    int mid = (left + right) / 2;
    if (mid % 2 == 0) {
        if (arr[mid] == arr[mid + 1])
            findSingleElement(arr, mid + 2, right);
        else
            findSingleElement(arr, left, mid);
    } else {
        if (arr[mid] == arr[mid - 1])
            findSingleElement(arr, mid + 1, right);
        else
            findSingleElement(arr, left, mid - 1);
    }
}

int main() {
    int arr[] = {1, 1, 3, 3, 4, 4, 5, 6, 6, 7, 7, 9, 9};
    int len = sizeof(arr) / sizeof(arr[0]);
    findSingleElement(arr, 0, len - 1);
}

आउटपुट

The required element is: 5
  1. C++ में N फैक्टोरियल के योग के अंतिम दो अंक ढूंढना C++ में N फैक्टोरियल के योग के अंतिम दो अंक ढूंढना

    यहां हम देखेंगे कि अंतिम दो अंक कैसे प्राप्त करें। N फैक्टोरियल के योग का इकाई स्थान अंक और दहाई स्थान अंक। यदि N=4 है, तो यह 1! + 2! + 3! + 4! = 33 होगा। इसलिए इकाई स्थान 3 और दहाई स्थान 3 है। परिणाम 33 होगा। 10 के बाद, दहाई स्थान भी 0 रहेगा। N=10 और अधिक के लिए, यह 00 होगा। हम N=1 से 10 तक के फै

  1. - C++ सम एरे पहेली (Sum Array Puzzle)

    एरे (Array) एक डेटा संरचना है जो समान डेटा प्रकार के कई तत्वों को संग्रहीत करती है। यह एक बार में मानों का पूरा सेट संग्रहीत कर सकता है। लेकिन इसकी लंबाई पहले से परिभाषित होनी चाहिए। इस सम एरे पहेली में, हमें एक निश्चित आकार का एरे A1 दिया जाता है, मान लीजिए n। इस पहेली को हल करने के लिए, हम S1 नाम

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

    एक सरणी में कई एलिमेंट्स होते हैं और सरणी में सबसे बड़ा एलिमेंट वह होता है जो अन्य एलिमेंट्स से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा एलिमेंट है और यह इंडेक्स 2 पर है। सरणी का सबसे बड़ा एलिमेंट खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream>