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

C++ में N को दो या अधिक पॉजिटिव इंटीजर्स के योग के रूप में लिखने के तरीके

इस समस्या में, हमें एक पूर्णांक n दिया गया है। हमारा कार्य उन तरीकों की कुल संख्या ज्ञात करना है जिनसे इसे दो या अधिक पॉजिटिव इंटीजर्स के योग के रूप में व्यक्त किया जा सकता है।

उदाहरण

इनपुट

N = 4

आउटपुट

5

व्याख्या

4 को इन तरीकों से योग के रूप में लिखा जा सकता है:
4, 3+1, 2+2, 2+1+1, 1+1+1+1

इस समस्या को हल करने के लिए, हम यूलर के पुनरावृत्ति सूत्र का उपयोग करेंगे। एक संख्या n के लिए, इसे उत्पन्न करने के तरीकों की कुल संख्या p(n) होगी:

Σ^∞ n=0 p(n)x^n = Π^∞ k=1 (1/(1-x^k))

इस सूत्र का उपयोग करके, हम p(n) के लिए सूत्र व्युत्पन्न करेंगे:

p(n) = p(n-1) + p(n-2) - p(n-5) - p(n-7) + … + (-1)^(k-1) * (k(3k-1))/2

हमारे समाधान के कार्यान्वयन को दिखाने वाला प्रोग्राम:

उदाहरण

#include <bits/stdc++.h>
using namespace std;

long long positiveSum(int n) {
    vector p(n + 1, 0);
    p[0] = 1;
    for (int i = 1; i <= n; ++i) {
        int k = 1;
        while ((k * (3 * k - 1)) / 2 <= i) {
            p[i] += (k % 2 ? 1 : -1) * p[i - (k * (3 * k - 1)) / 2];
            if (k > 0)
                k *= -1;
            else
                k = 1 - k;
        }
    }
    return p[n];
}

int main() {
    int N = 12;
    cout << N << " को दो या अधिक पॉजिटिव संख्याओं के योग के रूप में लिखने के तरीकों की संख्या: "
         << positiveSum(N);
    return 0;
}

आउटपुट

12 को दो या अधिक पॉजिटिव संख्याओं के योग के रूप में लिखने के तरीकों की संख्या: 77
  1. C++ में टू सम IV - इनपुट एक BST है C++ में टू सम IV - इनपुट एक BST है

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री और एक लक्ष्य मान है; हमें जांचना है कि क्या BST में दो तत्व मौजूद हैं जिनका योग दिए गए लक्ष्य के बराबर है या नहीं। इसलिए, यदि इनपुट जैसा है: तो आउटपुट True होगा। इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे: एक सरणी v परिभाषित करें एक फ़ंक्शन inor

  1. - C++ प्रोग्राम: दो संख्याएं जोड़ें

    परिचयजोड़ एक बुनियादी अंकगणितीय संक्रिया है। दो संख्याओं को जोड़ने वाला प्रोग्राम दो संख्याओं का जोड़ करता है और उनका योग स्क्रीन पर प्रिंट करता है। उदाहरण#include <iostream> using namespace std; int main() { int num1 = 15, num2 = 10, sum; sum = num1 + num2; cout << Sum of

  1. - पायथन में दो पूर्णांकों का योग

    मान लीजिए हमारे पास दो पूर्णांक a और b हैं। हमारा कार्य इन दो पूर्णांकों का योग ढूंढना है। एक प्रतिबंध यह है कि हम + या - जैसे किसी ऑपरेटर का उपयोग नहीं कर सकते। यदि a = 5 और b = 7, तो परिणाम 12 होगा। हल करने के चरण हल करने के लिए हम बिटवाइज लॉजिकल ऑपरेटर्स का उपयोग करेंगे यदि b = 0, तो a वापस करे