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

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

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

आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -

इनपुट - इंट एन =20, इंट के =2

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

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

इनपुट - इंट एन =10, इंट के =3

आउटपुट − पहले N नंबरों को K दूरी पर बनाने के लिए उन्हें पुनर्व्यवस्थित करना है:संभव नहीं

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

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

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

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

  • समारोह के अंदर पुनर्व्यवस्था (int n, int k)

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

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

    • IF k =0 चेक करें, फिर i से 1 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो और i को 1 से बढ़ा दें और i प्रिंट करें।

    • जांचें कि क्या अस्थायी 0 के बराबर नहीं है, फिर प्रिंट करें पॉसिबल नहीं है।

    • I से 1 तक के लिए लूप प्रारंभ करें जब तक कि मैं N से कम न हो और ptr[i] को i के साथ सेट करें।

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

    • I से 1 tll के लिए लूप प्रारंभ करें I N से कम है और i को 1 से बढ़ाएँ।

    • प्रिंट करें [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. सी++ में टेट्रानैचि संख्याएं

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

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

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

  1. सी ++ प्रोग्राम पहले एन प्राकृतिक संख्याओं के वर्गों के योग के लिए?

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