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

C++ प्रोग्राम: दी गई संख्या का यूनिक फैक्टराइज़ेशन करें


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

एल्गोरिदम

Begin function displayAllUniqueParts(int m):    1) पार्टीशन में अंतिम तत्व k का इंडेक्स 0 सेट करें    2) पहली पार्टीशन को संख्या के रूप में इनिशियलाइज़ करें, p[k]=m    3) एक व्हाइल लूप बनाएं जो पहले वर्तमान पार्टीशन को प्रिंट करता है, फिर अगली पार्टीजन उत्पन्न करता है। लूप तब रुकता है जब वर्तमान पार्टीशन में सभी 1 होते हैं।    4) displayArray(p, k + 1) के रूप में वर्तमान पार्टीशन प्रदर्शित करें    5) अगली पार्टीशन उत्पन्न करें:    6) val = 0 इनिशियलाइज़ करें।    p[] में सबसे दाएं नॉन-वन मान खोजें। साथ ही, val को अपडेट करें ताकि हम जान सकें कि कितना मान समायोजित किया जा सकता है।    यदि k < 0,    सभी मान 1 हैं इसलिए कोई और पार्टीशन नहीं हैं    ऊपर पाए गए p[k] को घटाएं और val को समायोजित करें।    7) यदि val अधिक है, तो सॉर्टेड ऑर्डर का उल्लंघन होता है। val को p[k] के आकार के विभिन्न मानों में विभाजित करें और इन मानों को p[k] के बाद विभिन्न स्थितियों पर कॉपी करें।    val को अगली स्थिति पर कॉपी करें और पोजीशन इन्क्रीमेंट करें। End

उदाहरण

#include<iostream> using namespace std; void displayArray(int p[], int m) //ऐरे प्रिंट करने के लिए {    for (int i = 0; i < m; i++)    cout << p[i] << " ";    cout << endl; } void displayAllUniqueParts(int m) {    int p[m];    int k = 0;    p[k] = m;    while (true)    {       displayArray(p, k + 1);       int val = 0; //val इनिशियलाइज़ करें       while (k >= 0 && p[k] == 1)       {          val += p[k]; //val अपडेट करें          k--;       }       if (k < 0)       return;       p[k]--;       val++;       while (val > p[k]) //यदि val अधिक है       {          p[k + 1] = p[k];          val = val - p[k];          k++;       }       p[k + 1] = val;       k++;    } } int main() {    cout << "Display All Unique Partitions of 3\n";    displayAllUniqueParts(3);    cout << "\nDisplay All Unique Partitions of 4\n";    displayAllUniqueParts(4);    cout << "\nDisplay All Unique Partitions of 5\n";    displayAllUniqueParts(5);    return 0; }

आउटपुट

Display All Unique Partitions of 3 3 2 1 1 1 1 Display All Unique Partitions of 4 4 3 1 2 2 2 1 1 1 1 1 1 Display All Unique Partitions of 5 5 4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1

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

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

  1. - C++ प्रोग्राम दी गई संख्या के अंकों का योग करने के लिए

    C++ भाषा में अंकों का योग गणना करने का एक उदाहरण निम्नलिखिक है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "संख्या दर्ज करें: ";    cin >> x;    while (x != 0) {       s =

  1. - C++ प्रोग्राम: सम्मिश्र संख्या गुणन

    सम्मिश्र संख्याएं सम्मिश्र संख्याएं a+bi के रूप में व्यक्त की जाती हैं, जहां i काल्पनिक इकाई है (i² = -1) और a, b वास्तविक संख्याएं हैं। उदाहरण 2+3i, 5+9i, 4+2i गुणन सूत्र (a+bi) × (c+di) = (ac - bd) + (ad + bc)i C++ प्रोग्राम उदाहरण #include <iostream> using namespace std; int main() {