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

C++ में पहले N संख्याओं को पुनर्व्यवस्थित करके उन्हें K दूरी पर रखें


हमें पूर्णांक चर दिए गए हैं, मान लीजिए, N और K। कार्य है पहले N के क्रमचय (permutation) की गणना करना और फिर क्रमचय को इस तरह पुनर्व्यवस्थित करना कि यह हर तत्व से K दूरी पर हो।

विभिन्न इनपुट-आउटपुट परिदृश्य

इनपुट - int n = 20, int k = 2

आउटपुट - पहले N संख्याओं को K दूरी पर बनाने का पुनर्व्यवस्थापन है: 3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 19 20 17 18.

व्याख्या - हमें पूर्णांक चर 'N' यानी 20 और 'K' यानी 2 दिए गए हैं। अब हम 'N' यानी 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 के क्रमचय की गणना करेंगे। अब, हम तत्वों को इस तरह व्यवस्थित करेंगे कि सभी तत्व हर तत्व से 'k' दूरी पर हों।

इनपुट - int n = 10, int k = 3

आउटपुट - पहले N संख्याओं को K दूरी पर बनाने का पुनर्व्यवस्थापन है: Not Possible

व्याख्या - हमें पूर्णांक चर 'N' यानी 10 और 'K' यानी 3 दिए गए हैं। अब हम 'N' यानी 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 के क्रमचय की गणना करेंगे। अब, हम तत्वों को इस तरह व्यवस्थित करेंगे कि सभी तत्व हर तत्व से 'k' दूरी पर हों लेकिन दिए गए इनपुट मानों के साथ यह संभव नहीं है।

उपयोग किया गया दृष्टिकोण

  • पूर्णांक प्रकार के तत्व इनपुट करें यानी 'N' और 'K'।

  • फ़ंक्शन Rearrangement(int n, int k) को कॉल करें N और K को पैरामीटर के रूप में फ़ंक्शन में पास करके।

  • फ़ंक्शन Rearrangement(int n, int k) के अंदर

    • temp नामक एक पूर्णांक चर घोषित करें और इसे n % (2 * k) से सेट करें।

    • ptr नामक एक पूर्णांक प्रकार की सरणी घोषित करें आकार n + 1 यानी prt[n+1]।

    • जांचें यदि k = 0 तो i को 1 से size से कम होने तक FOR लूप शुरू करें और i को 1 से बढ़ाएं और i प्रिंट करें।

    • जांचें यदि temp 0 के बराबर नहीं है तो NOT POSSIBLE प्रिंट करें।

    • i को 1 से N से कम होने तक FOR लूप शुरू करें और ptr[i] को i से सेट करें।

    • i को 1 से n से कम होने तक FOR लूप शुरू करें और i को i + 2 * k से सेट करें। लूप के अंदर, j को 1 से k से कम होने तक एक और FOR लूप शुरू करें और j को 1 से बढ़ाएं। लूप के अंदर, ptr[i + j -1] और ptr[k + i + j - 1] को पैरामीटर के रूप में पास करके swa विधि को कॉल करें।

    • i को 1 से N से कम होने तक FOR लूप शुरू करें और i को 1 से बढ़ाएं।

    • prt[i] प्रिंट करें।

  • परिणाम प्रिंट करें।

उदाहरण

#include <bits/stdc++.h> using namespace std; void Rearrangement(int n, int k){    int temp = n % (2 * k);    int ptr[n + 1];    if(k == 0){       for(int i = 1; i <= n; i++){          cout << i << " ";       }       return;    }    if(temp != 0){       cout<<"Not Possible";       return;    }    for(int i = 1; i <= n; i++){       ptr[i] = i;    }    for(int i = 1; i <= n; i += 2 * k){       for(int j = 1; j <= k; j++){          swap(ptr[i + j - 1], ptr[k + i + j - 1]);       }    }    for(int i = 1; i <= n; i++){       cout << ptr[i] << " ";    } } int main(){    int n = 20;    int k = 2;    cout<<"Rearrangement of first N numbers to make them at K distance is: ";    Rearrangement(n, k);    return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

Rearrangement of first N numbers to make them at K distance is: 3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 19 20 17 18

  1. - C++ में टेट्रानैकी नंबर्स

    यहां हम देखेंगे कि C++ का उपयोग करके टेट्रानैकी नंबर्स कैसे जेनरेट करें। टेट्रानैकी नंबर्स फिबोनैकी नंबर्स के समान हैं, लेकिन यहां हम चार पिछले टर्म्स को जोड़कर एक टर्म जेनरेट कर रहे हैं। मान लीजिए हम T(n) जेनरेट करना चाहते हैं, तो फॉर्मूला नीचे जैसा होगा -T(n) = T(n - 1) + T(n - 2) + T(n - 3) + T(n

  1. - C++ प्रोग्राम: पहले n प्राकृतिक संख्याओं के घन का योग

    धनात्मक पूर्णांक 1, 2, 3, 4... को प्राकृतिक संख्या के रूप में जाना जाता है। यह प्रोग्राम उपयोगकर्ता से एक धनात्मक पूर्णांक लेता है (मान लीजिए उपयोगकर्ता ने n दर्ज किया) फिर, यह प्रोग्राम 1³+2³+3³+....+n³ का मान प्रदर्शित करता है। Input: n = 3 Output: 36 व्याख्या 1³+2³+3³ = 1 +8+27 = 36 यह प्रोग्राम

  1. C++ में पहले n प्राकृतिक संख्याओं के वर्गों का योग C++ में पहले n प्राकृतिक संख्याओं के वर्गों का योग

    इस समस्या में हम देखेंगे कि पहले n प्राकृतिक संख्याओं के वर्गों का योग कैसे प्राप्त किया जा सकता है। यहां हम एक फॉर लूप का उपयोग कर रहे हैं, जो 1 से n तक चलता है। प्रत्येक चरण में हम पद का वर्ग निकाल रहे हैं और फिर इसे योग में जोड़ रहे हैं। यह प्रोग्राम पूरा होने में O(n) समय लेता है। लेकिन यदि हम