Table des matières
Grammaire
Algorithme
Méthode 2
Exemple
Sortie
Explication
Conclusion
Maison développement back-end C++ Vérifiez si le plus grand diviseur commun d'un tableau peut être rendu supérieur à 1 en remplaçant les paires par leur produit

Vérifiez si le plus grand diviseur commun d'un tableau peut être rendu supérieur à 1 en remplaçant les paires par leur produit

Aug 31, 2023 pm 06:49 PM
替换 最大公约数 produit

Vérifiez si le plus grand diviseur commun dun tableau peut être rendu supérieur à 1 en remplaçant les paires par leur produit

Dans cet article, nous visons à explorer une question fascinante sur le plus grand diviseur commun (PGCD) des tableaux dans divers langages de programmation, en nous concentrant sur le C++. Nous démontrerons une approche algorithmique qui utilise des échanges d'éléments par paires et le nombre de leurs produits pour vérifier s'il est possible d'améliorer GCD au-dessus de 1. De plus, nous proposerons d’autres manières de résoudre ce problème, chacune avec sa définition syntaxique. En plus de ces solutions, nous présenterons également deux codes exécutables complets contenant ces méthodes.

Grammaire

Pour garantir une compréhension claire des exemples de code qui suivent, nous devons évaluer et comprendre la syntaxe utilisée avant de le faire.

#include <iostream>
#include <vector>
using namespace std;

int gcd(int a, int b) {
   if (b == 0)
      return a;
   return gcd(b, a % b);
}

bool canIncreaseGCD(vector<int>& arr) {
   // Your implementation goes here
}
Copier après la connexion

Algorithme

Examinons la question de savoir si le plus grand diviseur commun d'un tableau peut être amélioré en échangeant le produit d'une paire d'éléments. Nous procéderons de la manière suivante :

  • Pour simplifier le processus de recherche du plus grand diviseur commun (PGCD) de deux nombres spécifiques à l'aide de l'algorithme euclidien, il sera d'une grande aide de créer une fonction d'assistance appelée "gcd(a,b)". Cette méthode prend deux entiers d'entrée « a » et « b » et, une fois traitée via cette variable, renvoie leur valeur « GDC » résultante comme données de sortie, simplifiant ainsi considérablement ce que vous devez faire pour obtenir diverses quantités scalaires et/ou de produits. pour obtenir des informations sur la GDC.

  • Cela s'appelle "canIncreaseGCD" et notre équipe a suggéré de créer une fonction booléenne qui prend un paramètre d'entrée appelé "arr" - représentant le tableau de valeurs GCD qui doivent être évaluées. Le but est de vérifier s'il existe des opérations possibles qui peuvent améliorer cette valeur en renvoyant « vrai » ou « faux ».

Méthode

Maintenant, discutons de deux méthodes différentes −

Méthode 1

  • Initialisez la variable currentGCD au plus grand diviseur commun des deux premiers éléments du tableau.

  • Vérifiez chaque élément du tableau, en commençant par le troisième élément, et calculez son plus grand diviseur commun (PGCD) en utilisant la valeur GCD actuelle. Ce processus est répété pour chaque élément suivant.

  • Dans le cas où le diviseur commun le plus élevé du GDC actuel par rapport à l'élément est supérieur à une valeur, un ajustement (currentGDC) est nécessaire pour que l'ajustement soit égal à la valeur/facteur commun le plus élevé introduit.

  • Renvoie true à partir de la fonction canIncreaseGCD si currentGCD devient supérieur à 1 pendant l'itération.

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>
#include <vector>
using namespace std;

int gcd(int a, int b) {
   if (b == 0)
      return a;
   return gcd(b, a % b);
}

bool canIncreaseGCD(vector<int>& arr) {
   int currentGCD = gcd(arr[0], arr[1]);
   for (int i = 2; i < arr.size(); i++) {
      if (gcd(arr[i], currentGCD) > 1) {
         currentGCD = gcd(arr[i], currentGCD);
         return true;
      }
   }
   return false;
}

int main() {
   vector<int> arr = {2, 3, 4, 5, 6};
   if (canIncreaseGCD(arr)) {
      cout << "The GCD of the array can be increased." << endl;
   } else {
      cout << "The GCD of the array cannot be increased." << endl;
   }
   return 0;
}
Copier après la connexion

Sortie

The GCD of the array cannot be increased.
Copier après la connexion
Copier après la connexion

Explication

Cette méthode vise à vérifier si le plus grand diviseur commun (PGCD) d'un tableau est amélioré en remplaçant une paire d'éléments par leur produit. Tout d’abord, le code définit une fonction qui calcule GCD sur la base de l’algorithme euclidien. Par la suite, CanIncreaseGCD est introduit pour initialiser currentGCD en utilisant le GCD des deux premiers éléments du vecteur arr. Il compare en outre le GCD de chaque élément suivant avec currentGDC et met à jour currentGDC si le GCD d'un élément et currentGDC dépasse 1. Au cours de l'itération, si currentGDC dépasse 1, nous pouvons incrémenter le GCD du tableau et renvoyer true sinon, renvoyer false, indiquant que cette méthode a échoué pour cette séquence de nombres particulière ; La fonction principale démontre son utilisation à l'aide d'un exemple de tableau et imprime sa réponse après avoir évalué si canIncreaseGDC peut incrémenter sa valeur GDC correspondante.

Méthode 2

  • Initialisez la variable totalGCD au plus grand diviseur commun de tous les éléments du tableau.

  • Parcourez le tableau et calculez le plus grand diviseur commun de chaque élément avec totalGCD.

  • Si le plus grand diviseur commun d'un élément et totalGCD est supérieur à 1, renvoie true à partir de la fonction canIncreaseGCD.

  • Si aucun élément augmentant le plus grand diviseur commun n'est trouvé à la fin de l'itération, renvoie false.

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>
#include <vector>
using namespace std;

int gcd(int a, int b) {
   if (b == 0)
      return a;
   return gcd(b, a % b);
}

bool canIncreaseGCD(vector<int>& arr) {
   int totalGCD = arr[0];
   for (int i = 1; i < arr.size(); i++) {
      totalGCD = gcd(arr[i], totalGCD);
      if (totalGCD > 1)
         return true;
   }
   return false;
}

int main() {
   vector<int> arr = {2, 3, 4, 5, 6};
   if (canIncreaseGCD(arr)) {
      cout << "The GCD of the array can be increased." << endl;
   } else {
      cout << "The GCD of the array cannot be increased." << endl;
   }
   return 0;
}
Copier après la connexion

Sortie

The GCD of the array cannot be increased.
Copier après la connexion
Copier après la connexion

Explication

Un autre objectif de la méthode 2 est de vérifier si la substitution de paires d'éléments dans le tableau peut augmenter leur plus grand diviseur commun (PGCD). La structure du code est similaire à celle utilisée dans la méthode 1. Tout d’abord, il inclut une fonction gcd pour calculer le GDC entre deux nombres, puis fournit une fonction canIncreaseGDC qui accepte un vecteur de tableau en entrée. En initialisant d'abord totalGCG en utilisant uniquement son premier élément, puis en itérant sur les éléments suivants, il évalue systématiquement chaque valeur calculée correspondante par rapport à totalCGC - Vrai si la sortie actuelle s'avère supérieure à un, indiquant que le CGC global a bien été incrémenté. , sinon False, indiquant qu'il n'y a pas eu d'incrément approprié une fois la recherche terminée. Encore une fois, cette approche fonctionne efficacement dans des situations comparables aux exemples utilisés dans notre démonstration principale.

Conclusion

Dans cet article, nous explorons les problèmes liés au plus grand diviseur commun (PGCD) des tableaux en C++. Nous avons discuté d'une approche algorithmique pour déterminer si le PGCD d'un tableau peut être supérieur à 1 en remplaçant le produit de paires d'éléments. Nous fournissons la syntaxe de la méthode utilisée dans l'extrait de code et proposons deux manières différentes de résoudre le problème. Deux exemples complets de code exécutable sont également fournis pour chaque méthode. En appliquant ces méthodes, vous pouvez déterminer efficacement si le GCD d'un tableau peut être augmenté, ouvrant ainsi la voie à une résolution ultérieure du problème.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les avantages et les inconvénients de la définition des macros de fonctions C++ ? Quels sont les avantages et les inconvénients de la définition des macros de fonctions C++ ? Apr 11, 2024 pm 04:54 PM

Bien que la définition de macros de fonctions puisse simplifier le code et améliorer les performances, elle présente également des inconvénients : insécurité des types, difficultés de débogage, conflits de noms et redondance du code. Après avoir pesé le pour et le contre, il est crucial de prendre des décisions éclairées lors de l’utilisation des macros de fonctions.

Maîtrisez les touches de raccourci de remplacement de PyCharm en 5 minutes et augmentez facilement votre vitesse de programmation ! Maîtrisez les touches de raccourci de remplacement de PyCharm en 5 minutes et augmentez facilement votre vitesse de programmation ! Feb 22, 2024 am 10:57 AM

PyCharm est un environnement de développement intégré Python couramment utilisé avec des fonctions riches et des touches de raccourci qui peuvent aider les développeurs à améliorer l'efficacité de la programmation. Dans le processus de programmation quotidien, la maîtrise des compétences de remplacement des touches de raccourci de PyCharm peut aider les développeurs à accomplir leurs tâches plus rapidement. Cet article vous présentera quelques touches de raccourci de remplacement couramment utilisées dans PyCharm pour vous aider à améliorer facilement votre vitesse de programmation. 1.Remplacement Ctrl+R Dans PyCharm, vous pouvez utiliser la touche de raccourci Ctrl+R pour effectuer des opérations de remplacement.

Remplacer le nom de classe d'un élément à l'aide de jQuery Remplacer le nom de classe d'un élément à l'aide de jQuery Feb 24, 2024 pm 11:03 PM

jQuery est une bibliothèque JavaScript classique largement utilisée dans le développement Web. Elle simplifie les opérations telles que la gestion des événements, la manipulation des éléments DOM et l'exécution d'animations sur les pages Web. Lorsque vous utilisez jQuery, vous rencontrez souvent des situations dans lesquelles vous devez remplacer le nom de classe d'un élément. Cet article présentera quelques méthodes pratiques et des exemples de code spécifiques. 1. Utilisez les méthodes RemoveClass() et AddClass(). JQuery fournit la méthode RemoveClass() pour la suppression.

Guide du débutant PyCharm : analyse complète des fonctions de remplacement Guide du débutant PyCharm : analyse complète des fonctions de remplacement Feb 25, 2024 am 11:15 AM

PyCharm est un puissant environnement de développement intégré Python doté de fonctions et d'outils riches qui peuvent considérablement améliorer l'efficacité du développement. Parmi elles, la fonction de remplacement est l'une des fonctions fréquemment utilisées dans le processus de développement, qui peut aider les développeurs à modifier rapidement le code et à améliorer la qualité du code. Cet article présentera en détail la fonction de remplacement de PyCharm, combinée à des exemples de code spécifiques, pour aider les novices à mieux maîtriser et utiliser cette fonction. Introduction à la fonction de remplacement La fonction de remplacement de PyCharm peut aider les développeurs à remplacer rapidement le texte spécifié dans le code

Explication détaillée de la façon d'utiliser le langage C pour trouver le plus grand diviseur commun Explication détaillée de la façon d'utiliser le langage C pour trouver le plus grand diviseur commun Feb 18, 2024 pm 11:10 PM

Explication détaillée de la méthode de recherche du plus grand diviseur commun en langage C Le plus grand diviseur commun (PGCD, Greatest Common Divisor) est un concept couramment utilisé en mathématiques, qui fait référence au plus grand diviseur parmi plusieurs entiers. En langage C, nous pouvons utiliser de nombreuses méthodes pour trouver le plus grand diviseur commun. Cet article détaillera plusieurs de ces méthodes courantes et fournira des exemples de code spécifiques. Méthode 1 : La division euclidienne est une méthode classique pour trouver le plus grand commun diviseur de deux nombres. Son idée de base est de diviser continuellement les diviseurs et les restes de deux nombres.

Explication détaillée du mécanisme d'appel de fonction C++ Explication détaillée du mécanisme d'appel de fonction C++ Apr 11, 2024 pm 02:12 PM

Le mécanisme d'appel de fonction en C++ consiste à transmettre des arguments à une fonction et à exécuter son code, en renvoyant le résultat s'il existe. Il existe deux manières de transmettre des paramètres : passer par valeur (les modifications sont effectuées à l'intérieur de la fonction) et passer par référence (les modifications sont reflétées dans l'appelant). Lors du passage de valeur, les modifications de valeur au sein de la fonction n'affectent pas la valeur d'origine (telle que printValue), tandis que les modifications lors du passage de référence affectent la valeur d'origine (telle que printReference).

Comment remplacer un mot dans Excel en utilisant Python ? Comment remplacer un mot dans Excel en utilisant Python ? Sep 16, 2023 pm 10:21 PM

En Python, nous pouvons remplacer un mot par un autre mot dans Excel à l'aide d'une bibliothèque Python tierce appelée openpyxl. Microsoft Excel est un outil utile pour gérer et analyser les données. Grâce à Python, nous pouvons automatiser certaines tâches de gestion de données Excel. Dans cet article, nous apprendrons comment remplacer un mot dans Excel à l'aide de Python. Avant d'installer openpyxl pour remplacer Word dans Excel, nous devons installer la bibliothèque openpyxl dans le système à l'aide du gestionnaire de packages Python. Pour installer openpyxl, entrez la commande suivante dans le terminal ou l'invite de commande. Pipiniste

PyCharm remplace les touches de raccourci pour rendre la programmation plus pratique ! PyCharm remplace les touches de raccourci pour rendre la programmation plus pratique ! Feb 21, 2024 pm 12:03 PM

PyCharm est un environnement de développement intégré populaire parmi les programmeurs. Il fournit des fonctions et des outils puissants pour rendre la programmation plus efficace et plus pratique. Dans PyCharm, un réglage et un remplacement raisonnables des touches de raccourci sont l'une des clés pour améliorer l'efficacité de la programmation. Cet article explique comment remplacer les touches de raccourci dans PyCharm pour rendre la programmation plus pratique. 1. Pourquoi devrions-nous remplacer les touches de raccourci ? Dans PyCharm, les touches de raccourci peuvent aider les programmeurs à effectuer rapidement diverses opérations et à améliorer l'efficacité de la programmation. Cependant, chacun a des habitudes différentes et certaines personnes peuvent

See all articles