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. 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. Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiertDie im folgenden Programm verwendete Methode ist wie folgt:
#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
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!