Gegeben ist eine ganzzahlige Variable Zahl als Eingabe. Betrachten wir ein Array, das Elemente im Bereich von 1 bis Zahl in sortierter Reihenfolge enthält. Wenn wir eine Operation an einem Array ausführen, werden bei jedem Schritt Elemente an ungeraden Positionen entfernt. Dann besteht das Ziel darin, diese Operation N auszuführen Die Anzahl der Male, bis nur noch ein Element übrig ist. Drucken Sie das Element am Ende aus.
HINWEIS -: Die Elemente werden so positioniert, dass sich das Array bei Index 0 an Position 1 befindet, und so weiter.
Eingabenummer=1, Ausgabe=1
Eingabenummer=2, Ausgabe=2
Eingabenummer=3, Ausgabe=2
>Eingabenummer=4, Ausgabe= 4
Eingabemenge=5, Ausgabe=4
Eingabemenge=6, Ausgabe=4
Eingabemenge=7, Ausgabe=4
......
Eingabemenge=12, Ausgabe=8
Eingabezahl = 20, Ausgabe = 16
Basierend auf der obigen Beobachtung beträgt die Ausgabe für den Zahlenbereich zwischen 2i und 2i+1-1 2i .
Eingabe −Nummer=7
Ausgabe − Die Elemente nach einer einzelnen Reduktionsoperation sind: 4
Erklärung − Das erste Element befindet sich an Position 1 und so weiter.
Das Array ist [ 1 2 3 4 5 6 7 ]
Nach der ersten Operation: [ 2 4 6 ]
Nach der zweiten Operation: [ 4 ]
Geben Sie − Nummer = 18 ein.
Ausgabe − Das einzelne Element nach der Reduktionsoperation ist: 4
Erklärung − Das erste Element befindet sich an Position 1 und das
Array ist [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18]
Nach der ersten Operation: [ 2 4 6 8 10 12 14 16 18]
Nach der 2. Operation: [ 2 8 12 16 ]
Nach der 3. Operation: [ 8 16 ]
Nach 4 Operationen [ 16 ]
Bei dieser Methode verwenden wir eine While-Schleife, um das Endergebnis basierend auf der obigen Formel zu berechnen. Beginnen Sie mit einem Anfangswert von 2 und iterieren Sie, bis 2*Ergebnis
Erhalten Sie die Eingabevariable Number
Die Funktion getsingleElement(long num) ruft die Eingabenummer ab und gibt das Ergebnis gemäß der obigen Formel aus.
Erhalten Sie variable Ergebnisse.
Initialisieren Sie das Ergebnis mit 2.
Verwenden Sie eine While-Schleife, um zu durchlaufen, bis das Ergebnis*2 li>
wird die Ergebnisse verdoppeln.
Sobald die while-Schleife endet, erhalten wir den gewünschten Wert.
Ergebnisse zurückgeben.
Drucken Sie die Ergebnisse im Hauptteil aus.
#include<bits/stdc++.h> using namespace std; long getsingleElement(long num){ long result; result=2; while(result*2 <= num){ result=result*2; } return result; } int main(){ int Number = 20; cout<<"The single element after reduction operation is : "<<getsingleElement(Number) ; return 0; }
Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert
The single element after reduction operation is : 16
Das obige ist der detaillierte Inhalt vonReduzieren Sie ein Array mithilfe der angegebenen Operation auf ein Element. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!