Heim >Backend-Entwicklung >C++ >Reduzieren Sie ein Array mithilfe der angegebenen Operation auf ein Element

Reduzieren Sie ein Array mithilfe der angegebenen Operation auf ein Element

PHPz
PHPznach vorne
2023-08-31 19:01:15985Durchsuche

Reduzieren Sie ein Array mithilfe der angegebenen Operation auf ein Element

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.

Testfall für die Anzahl der Elemente im Array

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 .

Beispiel

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 ]

Die im folgenden Programm verwendete Methode ist wie folgt

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.

Beispiel

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

Ausgabe

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!

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