Maison > développement back-end > C++ > Réduire un tableau à un élément en utilisant l'opération donnée

Réduire un tableau à un élément en utilisant l'opération donnée

PHPz
Libérer: 2023-08-31 19:01:15
avant
986 Les gens l'ont consulté

Réduire un tableau à un élément en utilisant lopération donnée

Étant donné une variable entière Nombre en entrée. Considérons un tableau contenant des éléments compris entre 1 et Number dans l'ordre trié. Si nous effectuons une opération sur un tableau, les éléments aux positions impaires seront supprimés à chaque étape. Le but est alors d’effectuer cette opération N Le nombre de fois jusqu'à ce qu'il ne reste qu'un seul élément. Imprimez l'élément à la fin.

REMARQUE - : Les éléments sont positionnés de manière à ce que le tableau à l'index 0 soit à la position 1, et ainsi de suite.

Cas de test pour le nombre d'éléments dans le tableau

Numéro d'entrée=1, sortie=1

Numéro d'entrée=2, sortie=2

Numéro d'entrée=3, sortie=2

>

Numéro d'entrée=4, sortie= 4

Quantité d'entrée = 5, sortie = 4

Quantité d'entrée = 6, sortie = 4

Quantité d'entrée = 7, sortie = 4

......

Quantité d'entrée = 12, sortie = 8

Numéro d'entrée = 20, Sortie = 16

Sur la base de l'observation ci-dessus, pour la plage de nombres comprise entre 2i et 2i+1-1, la sortie sera 2i .

Exemple

Entrée −Nombre=7

Sortie − Les éléments après une seule opération de réduction sont : 4

Explication − Le premier élément est en position 1, et ainsi de suite.

Le tableau sera [ 1 2 3 4 5 6 7 ]

Après la première opération : [ 2 4 6 ]

Après la deuxième opération : [ 4 ]

Entrez − nombre = 18

Sortie − L'élément unique après l'opération de réduction est : 4

Explication − Le premier élément est en position 1 et le

tableau sera [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18]

Après la première opération : [ 2 4 6 8 10 12 14 16 18]

Après la 2ème opération : [ 2 8 12 16 ]

Après la 3ème opération : [ 8 16 ]

Après 4 opérations [ 16 ]

La méthode utilisée dans le programme ci-dessous est la suivante

Dans cette méthode, nous utiliserons une boucle while pour calculer le résultat final en fonction de la formule ci-dessus. En commençant par une valeur initiale de 2, répétez jusqu'à ce que 2*résultat

  • Obtenir la variable d'entrée Number

  • La fonction getsingleElement(long num) obtient le numéro d'entrée et imprime le résultat selon la formule ci-dessus.

  • Obtenez des résultats variables.

  • Initialisez le résultat avec 2.

  • Utilisez une boucle while pour parcourir jusqu'à ce que le résultat*2 li>

  • doublera les résultats à l'intérieur.

  • Une fois la boucle while terminée, nous obtenons la valeur souhaitée.

  • Retour des résultats.

  • Imprimez les résultats en principal.

Exemple

#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;
}
Copier après la connexion

Output

Si nous exécutons le code ci-dessus, il générera la sortie suivante

The single element after reduction operation is : 16
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal