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

C++ में ऐरे एलिमेंट्स का उपयोग करके N तक योग करने के तरीके (पुनरावृत्ति अनुमत)

इस समस्या में, हमें पूर्णांकों का एक ऐरे और एक संख्या N दी गई है। हमारा कार्य ऐरे के तत्वों को जोड़कर N उत्पन्न करने के कुल तरीकों की संख्या गिनना है। सभी कॉम्बिनेशन और पुनरावृत्ति अनुमत हैं।

उदाहरण

इनपुट

arr = {1, 3, 5} N = 6

आउटपुट

8

व्याख्या

तरीके हैं:

5+1, 1+5, 3+3, 3+1+1+1, 1+3+1+1, 1+1+3+1, 1+1+1+3, 1+1+1+1+1+1

इस समस्या को हल करने के लिए, हमें एक अलग दृष्टिकोण की आवश्यकता है क्योंकि सभी प्रकार के कॉम्बिनेशन को अलग-अलग माना जाएगा। इसलिए, यदि संख्या ऐरे के 4 तत्वों का योग है तो 4 अलग-अलग तरीके माने जाते हैं (उदाहरण में दिखाया गया है)। ऐसी समस्या को हल करने के लिए, हमें डायनामिक प्रोग्रामिंग दृष्टिकोण का उपयोग करने की आवश्यकता है और नीचे दिया गया प्रोग्राम कार्यान्वयन दिखाएगा।

उदाहरण

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

int arraySumWays(int array[], int size, int N) {
    int count[N + 1];
    memset(count, 0, sizeof(count));
    count[0] = 1;
    for (int i = 1; i <= N; i++)
        for (int j = 0; j < size; j++)
            if (i >= array[j])
                count[i] += count[i - array[j]];
    return count[N];
}

int main() {
    int array[] = {1, 5, 6};
    int size = sizeof(array) / sizeof(array[0]);
    int N = 7;
    cout << "ऐरे के तत्वों के योग का उपयोग करके " << N << " उत्पन्न करने के कुल तरीके: "
         << arraySumWays(array, size, N);
    return 0;
}

आउटपुट

ऐरे के तत्वों के योग का उपयोग करके 7 उत्पन्न करने के कुल तरीके: 6
  1. - C++ में सम ऐरे पजल (बिना घटाव ऑपरेटर के)

    यहां हम ऐरे से संबंधित एक रोचक समस्या देखेंगे। n तत्वों वाला एक ऐरे है। हमें n तत्वों का एक और ऐरे बनाना है। लेकिन दूसरे ऐरे का i-th स्थान पहले ऐरे के i-th तत्व को छोड़कर सभी तत्वों का योग रखेगा। और एक प्रतिबंध है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते। यदि हम घटाव ऑपरेशन का उपयोग कर

  1. - C++ में हीप सॉर्ट एल्गोरिदम का उपयोग करके 10 तत्वों की सरणी को सॉर्ट करने का प्रोग्राम

    हीप सॉर्ट बाइनरी हीप डेटा संरचना पर आधारित है। बाइनरी हीप में, मैक्स हीप के मामले में पैरेंट नोड के चाइल्ड नोड्स उससे छोटे या बराबर होते हैं, और मिन हीप के मामले में चाइल्ड नोड्स पैरेंट से बड़े या बराबर होते हैं। हीप सॉर्ट के सभी चरणों को समझाने वाला एक उदाहरण निम्नलिखित है। सॉर्टिंग से पहले 10 तत्व

  1. - C++ में पॉइंटर का उपयोग करके सरणी के एलिमेंट्स एक्सेस करने का प्रोग्राम

    पॉइंटर्स वेरिएबल्स के मेमोरी स्थान या पते को संग्रहीत करते हैं। दूसरे शब्दों में, पॉइंटर्स एक मेमोरी स्थान को संदर्भित करते हैं और उस मेमोरी स्थान पर संग्रहीत मान को प्राप्त करना पॉइंटर को डीरेफरेंस करना कहलाता है। एक प्रोग्राम जो सरणी के एकल एलिमेंट को एक्सेस करने के लिए पॉइंटर्स का उपयोग करता है,