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

एक संख्या को 3 भागों में विभाजित करने के तरीकों की संख्या गिनें C++ में


हमें एक धनात्मक संख्या N दी गई है। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे संख्या N को 3 भागों में विभाजित किया जा सकता है। भाग समान या असमान हो सकते हैं। N की सीमा [1,5000] में है।

हम इसे 3 भागों के लिए तीन फॉर लूप का उपयोग करके करेंगे। सबसे आंतरिक लूप में जांचेंगे कि तीनों का योग N के बराबर है या नहीं। यदि सत्य है, तो तरीकों की संख्या बढ़ाएं।

उदाहरण से समझते हैं

इनपुट - N=5

आउटपुट - N को 3 भागों में विभाजित करने के तरीकों की संख्या: 2

व्याख्या - 5 को (1,1,3) और (1,2,2) के योग के रूप में दिखाया जा सकता है

इनपुट - N=9

आउटपुट - N को 3 भागों में विभाजित करने के तरीकों की संख्या: 7

व्याख्या - 9 को निम्न के योग के रूप में दिखाया जा सकता है: (1, 1, 7), (1, 2, 6), (1, 3, 5), (1, 4, 4), (2, 2, 5), (2, 3,4) और (3, 3, 3)।

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • हम 1 और 5000 के बीच मान के साथ एक पूर्णांक N लेते हैं।

  • फ़ंक्शन divideN(int n) n लेता है और उन तरीकों की संख्या लौटाता है जिनसे n को 3 भागों में विभाजित किया जा सकता है।

  • प्रारंभिक चर count को 0 से आरंभ करें तरीकों की संख्या के लिए।

  • संख्या के प्रत्येक भाग के लिए तीन फॉर लूप का उपयोग करके पार करें।

  • बाहरी लूप 1<=i

  • जांचें कि i, j और k का योग n के बराबर है या नहीं। यदि सत्य है तो काउंट बढ़ाएं।

  • सभी लूप के अंत में count में n को तीन भागों में विभाजित करने के कुल तरीकों की संख्या होगी।

  • काउंट को परिणाम के रूप में लौटाएं।

उदाहरण

#include <bits/stdc++.h> using namespace std; int divideN(int n){    int count = 0;    for (int i = 1; i < n; i++){       for (int j = i ; j < n; j++){          for (int k = j; k < n; k++){             int sum=i+j+k;             if(sum==n)                { count++; }          }       }    }    return count; } int main(){    int N=500;    cout <<endl<< "N को 3 भागों में विभाजित करने के तरीकों की संख्या: "<<divideN(N);    return 0; }

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -

N को 3 भागों में विभाजित करने के तरीकों की संख्या: 20833

  1. C++ में एक सेट को k उपसमुच्चयों में विभाजित करने के तरीकों की संख्या गिनें C++ में एक सेट को k उपसमुच्चयों में विभाजित करने के तरीकों की संख्या गिनें

    समस्या विवरण दो संख्याएं e और p दी गई हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे हम एक सेट के e तत्वों को p पार्टीशन/उपसमुच्चयों में विभाजित कर सकते हैं। उदाहरण इनपुट e=4 p=2 आउटपुट सेट को k उपसमुच्चयों में विभाजित करने के तरीकों की संख्या: 7 व्याख्या यदि तत्व हैं: a b c d तो उन्हें 2 पार्टीशन

  1. C++ में आयत में वर्गों की संख्या गिनना C++ में आयत में वर्गों की संख्या गिनना

    =B। लक्ष्य LxB आकार के आयत में समायोजित किए जा सकने वाले वर्गों की संख्या ढूंढना है। उपरोक्त आकृति 3x2 आकार के एक आयत को दर्शाती है। इसमें 2, 2x2 वर्ग और 6, 1x1 वर्ग हैं। कुल वर्ग = 6+2=8। LxB आकार के हर आयत में L*B संख्या के 1x1 वर्ग होते हैं। सबसे बड़े वर्ग BxB आकार के होते हैं। L=B=1 के लिए, वर

  1. - C++ प्रोग्राम: संख्या में उन अंकों की संख्या ज्ञात करना जो संख्या को विभाजित करते हैं

    मान लें कोई संख्या दी गई है। हमें संख्या के उन अंकों की संख्या गिननी है जो संख्या को समान रूप से विभाजित करते हैं। मान लें संख्या 1012 है, परिणाम 3 है। तीन अंक 1, 1, और 2 हैं जो 1012 को समान रूप से विभाजित करते हैं। इसे हल करने के लिए, हम मापांक ऑपरेशन का उपयोग करके संख्या के प्रत्येक अंक को ज्ञात