Heim  >  Artikel  >  Backend-Entwicklung  >  Ordnen Sie die ersten N Zahlen in C++ so an, dass sie einen Abstand von K haben

Ordnen Sie die ersten N Zahlen in C++ so an, dass sie einen Abstand von K haben

王林
王林nach vorne
2023-09-11 15:13:10947Durchsuche

在 C++ 中重新排列前 N 个数字,使它们处于 K 距离

Gegebene ganzzahlige Variablen, sagen wir N und K. Die Aufgabe besteht darin, zunächst die Permutationen von N zu berechnen und sie dann so neu anzuordnen, dass sie einen Abstand K von jedem Element haben.

Sehen wir uns verschiedene Eingabe- und Ausgabeszenarien an -

Eingabe- int n = 20, int k = 2

Ausgabe

strong>− Ordnen Sie die ersten N Zahlen so an, dass sie den K-Abstand haben: 3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 19 20 17 18.

Erläuterung

Erklärung strong>− Wir erhalten die ganzzahligen Variablen „N“, d. h. 20, und „K“, d. h. 2. Jetzt berechnen wir die Permutationen von „N“, also 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 . Jetzt sind wir Die Elemente werden so angeordnet, dass alle Elemente „k“ von jedem Element entfernt sind.

Input− int n = 10, int k = 3

Input − int n = 10, int k = 3

Input p>

Output- Ordnen Sie die ersten N Zahlen so an, dass sie At sind K-Abstand: Unmöglich

Erklärung – Wir erhalten die ganzzahligen Variablen „N“, also 10, und „K“, also 3. Jetzt berechnen wir die Permutationen von „N“, also 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Jetzt werden wir die Elemente so anordnen, dass alle Elemente einen Abstand von „k“ von jedem Element haben, aber das ist für den gegebenen Eingabewert nicht möglich.

Die im folgenden Programm verwendete Methode ist wie folgt:

  • Geben Sie ein ganzzahliges Element ein, d. h. „N“ und „K“.

  • Rufen Sie die Funktion Rearrangement(int n, int k) auf, indem Sie N und K als Parameter an die Funktion übergeben.

  • Innerhalb der Funktion Rearrangement(int n, int k)

    • deklariert eine ganzzahlige Variable als temp und setzt sie auf n % (2 * k).

    • Deklarieren Sie ein ganzzahliges Array als ptr 1 der Größe n +, also prt[n+1].

    • Überprüfen Sie, ob k = 0 ist, und beginnen Sie dann mit der FOR-Schleife von i nach 1, bis i kleiner als die Größe ist, erhöhen Sie i um 1 und drucken Sie i aus.

    • Überprüfen Sie, ob die Temperatur nicht gleich 0 ist, und drucken Sie dann NICHT MÖGLICH aus.

    • Starten Sie eine FOR-Schleife von i nach 1, bis i kleiner ist als

    • Starten Sie eine FOR-Schleife von i nach 1, bis i kleiner als n ist, und setzen Sie i auf i + 2 * k. Starten Sie innerhalb der Schleife eine weitere Schleife FOR von j bis 1, bis j kleiner als k ist, und erhöhen Sie j um 1. Innerhalb der Schleife wird die swa-Methode aufgerufen, indem ptr[i + j -1] und ptr[k + i + j - 1] als Parameter übergeben werden.

    • Starten Sie eine FOR-Schleife von i nach 1, bis i kleiner als N ist, und erhöhen Sie i um 1.

    • Druck[i]

  • Drucken Sie die Ergebnisse aus.

  • Beispiel
    #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;
    }

    Ausgabe

    Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert

    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

    Das obige ist der detaillierte Inhalt vonOrdnen Sie die ersten N Zahlen in C++ so an, dass sie einen Abstand von K haben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen