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
1053 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!

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