Maison  >  Article  >  développement back-end  >  En C++, trouver la somme factorielle et suffixe d'un tableau dans un tableau donné

En C++, trouver la somme factorielle et suffixe d'un tableau dans un tableau donné

PHPz
PHPzavant
2023-08-25 21:57:061098parcourir

En C++, trouver la somme factorielle et suffixe dun tableau dans un tableau donné

La découverte des factorielles de suffixes et des sommes de suffixes correspondantes à partir de tableaux est tout à fait réalisable lorsque vous comprenez les outils et techniques du langage de programmation C++. C'est exactement ce dont nous discuterons dans cet article, y compris la syntaxe des méthodes, la complexité algorithmique et les moyens efficaces de les résoudre. De plus, cet article présente deux exemples de code concrets basés sur ces méthodes. Enfin, nous résumons nos idées en points clés à retenir.

Grammaire

Pour garantir une compréhension claire des exemples de code à venir, veuillez vous familiariser avec la syntaxe des méthodes utilisées avant de plonger dans leurs algorithmes.

// Method syntax
<return_type> methodName(<parameters>) {
   // Method implementation
}

Algorithme

Maintenant, décrivons l'algorithme étape par étape pour trouver la factorielle des suffixes et la somme des suffixes pour les tableaux −

  • Initialisez un tableau vide pour stocker le suffixe factoriel.

  • Pour réussir cette mission. Il est recommandé de parcourir le tableau fourni dans l'ordre inverse. A chaque itération, le calcul factoriel doit être effectué sur l'élément courant et le résultat est stocké dans un tableau factoriel de suffixes supplémentaire.

  • Initialisez le tableau de somme de suffixes en utilisant le dernier élément du tableau donné.

  • Parcourez le tableau factoriel de suffixes dans l'ordre inverse.

  • Pour chaque élément du tableau factoriel de suffixes, la somme des suffixes correspondante est calculée en l'ajoutant à la somme précédente et stockée dans le tableau de somme des suffixes.

Méthode 1 : Méthode itérative

Dans cette méthode, nous utiliserons la méthode itérative pour trouver un tableau de suffixes factoriels et de suffixes de somme.

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>

// Function to calculate the factorial of a given number
int factorial(int n) {
   int fact = 1;
   for (int i = 2; i <= n; i++) {
      fact *= i;
   }
   return fact;
}

int main() {
   // Initialize the given array
   int arr[] = {1, 2, 3, 4, 5};
   int n = sizeof(arr) / sizeof(arr[0]);

   // Create an array to store the suffix factorials
   int suffixFactorials[n];

   // Calculate the suffix factorials
   for (int i = n - 1; i >= 0; i--) {
      suffixFactorials[i] = factorial(arr[i]);
   }
   
   // Create an array to store the suffix sum
   int suffixSum[n];
   
   // Calculate the suffix sum
   suffixSum[n - 1] = arr[n - 1];
   for (int i = n - 2; i >= 0; i--) {
      suffixSum[i] = suffixSum[i + 1] + suffixFactorials[i];
   }
   
   // Output the suffix factorials and the suffix sum
   for (int i = 0; i < n; i++) {
      std::cout << "Suffix Factorial[" << i << "]: " << suffixFactorials[i] << std::endl;
      std::cout << "Suffix Sum[" << i << "]: " << suffixSum[i] << std::endl;
   }
   return 0;
}

Sortie

Suffix Factorial[0]: 1
Suffix Sum[0]: 38
Suffix Factorial[1]: 2
Suffix Sum[1]: 37
Suffix Factorial[2]: 6
Suffix Sum[2]: 35
Suffix Factorial[3]: 24
Suffix Sum[3]: 29
Suffix Factorial[4]: 120
Suffix Sum[4]: 5

Explication

se traduit par :

Explication

La méthode itérative de recherche de tableaux factoriels de suffixes et de sommes de suffixes consiste à parcourir le tableau donné dans l'ordre inverse. Pour chaque élément du tableau, la factorielle est calculée à l'aide d'une méthode itérative et stockée dans un tableau factoriel de suffixes. Crée et initialise simultanément le suffixe et le tableau, la valeur initiale étant le dernier élément du tableau donné. La mise en œuvre d’une stratégie simple mais efficace peut résoudre ce problème à la fois facilement et efficacement. La première étape consiste à parcourir le tableau factoriel de suffixes, mais à le conserver dans l'ordre inverse au lieu de l'ordre direct. L'utilisation de ce parcours nous permet de calculer facilement chaque somme de suffixe en l'ajoutant à son calcul précédent et en l'encodant dans notre variable de sortie cible.

Méthode 2 : Méthode récursive

Notre stratégie consiste à utiliser le concept de distance de Hamming pour résoudre le problème posé.

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>

// Function to calculate the factorial of a given number recursively
int factorial(int n) {
   if (n == 0 || n == 1) {
      return 1;
   }
   return n * factorial(n - 1);
}

int main() {
   // Initialize the given array
   int arr[] = {1, 2, 3, 4, 5};
   int n = sizeof(arr) / sizeof(arr[0]);

   // Create an array to store the suffix factorials
   int suffixFactorials[n];

   // Calculate the suffix factorials
   for (int i = n - 1; i >= 0; i--) {
      suffixFactorials[i] = factorial(arr[i]);
   }

   // Create an array to store the suffix sum
   int suffixSum[n];

   // Calculate the suffix sum
   suffixSum[n - 1] = arr[n - 1];
   for (int i = n - 2; i >= 0; i--) {
      suffixSum[i] = suffixSum[i + 1] + suffixFactorials[i];
   }

   // Output the suffix factorials and the suffix sum
   for (int i = 0; i < n; i++) {
      std::cout << "Suffix Factorial[" << i << "]: " << suffixFactorials[i] << std::endl;
      std::cout << "Suffix Sum[" << i << "]: " << suffixSum[i] << std::endl;
   }
   return 0;
}

Sortie

Suffix Factorial[0]: 1
Suffix Sum[0]: 38
Suffix Factorial[1]: 2
Suffix Sum[1]: 37
Suffix Factorial[2]: 6
Suffix Sum[2]: 35
Suffix Factorial[3]: 24
Suffix Sum[3]: 29
Suffix Factorial[4]: 120
Suffix Sum[4]: 5

Explication

se traduit par :

Explication

Pour obtenir les tableaux factoriels de suffixe et sommés, une stratégie récursive est utilisée. En itérant vers l'arrière à partir de la fin du tableau donné, la fonction récursive calcule sa factorielle. Ces valeurs sont ensuite stockées dans le tableau factoriel de suffixes associé. L'étape suivante consiste à initialiser un nouveau tableau de somme de suffixes en lui attribuant le dernier élément de la collection d'entrée. La tabulation des calculs de sommation dans ce tableau nouvellement généré tout en itérant les calculs sur l'ensemble factoriel que nous avons précédemment construit dans l'ordre inverse produit les résultats que nous recherchons grâce à une utilisation efficace de l'itération récursive.

Conclusion

En résumé, nous utilisons le langage de programmation C++ pour examiner le concept d'identification des factorielles de suffixes et de correspondance des tableaux de somme de suffixes dans un tableau d'entrée. Notre analyse a donné lieu à deux approches distinctes : itérative et récursive. De plus, nous avons inclus des exemples de code précis pour démontrer efficacement les capacités de chaque méthode. En comprenant et en mettant en œuvre ces méthodes, vous pouvez résoudre efficacement des problèmes similaires impliquant le calcul de factorielles de suffixes et de sommes de suffixes avec des tableaux. Continuez à explorer et à essayer différents algorithmes pour améliorer vos compétences en programmation.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer