Maison > développement back-end > C++ > Programme C++ écrit en utilisant la récursion pour calculer le produit de deux nombres

Programme C++ écrit en utilisant la récursion pour calculer le produit de deux nombres

王林
Libérer: 2023-08-28 11:01:11
avant
1669 Les gens l'ont consulté

Programme C++ écrit en utilisant la récursion pour calculer le produit de deux nombres

La récursion est une technique permettant d'appeler une fonction à partir de la même fonction elle-même. Il doit y avoir une condition de base ou de fin pour mettre fin à l'appel récursif. Les procédures récursives sont très utiles pour effectuer des solutions itératives complexes avec moins de code et trouver des solutions plus simples via des sous-opérations.

Dans cet article, nous discuterons de la méthode récursive pour effectuer un produit (multiplication) entre deux nombres en C++. Nous comprenons d’abord les principes de base, la syntaxe d’appel de fonctions récursives, l’algorithme et le code source.

Utilisez la multiplication récursive

Dans les langages de haut niveau, il existe des opérateurs de multiplication qui peuvent effectuer directement la multiplication. Cependant, nous savons que la multiplication est en réalité une addition répétée. Ainsi, le résultat de A*B est le nombre d’ajouts répétés de A et B, ou on peut dire que le nombre d’ajouts répétés de B et A. Chaque fois qu'il y a des répétitions, nous pouvons le faire en utilisant la récursivité. Examinons d'abord la syntaxe de définition de fonction récursive.

Grammaire

<return type> function_name ( parameter list ) {
   if ( base condition ) {
      terminate recursive call
   }
   recursive function call: function_name ( updated parameter list )
}
Copier après la connexion

Algorithme

Regardons l'algorithme qui effectue la multiplication par récursion.

  • Définissez une fonction multiplier() qui accepte deux nombres A et B
    • Si A < B, alors < B,则
      • multiplication de retour (B, A)
    • Sinon, lorsque B n'est pas 0, alors
      • renvoie A + multiplication (A, B - 1)
    • Sinon
      • Retour 0
    • Si ça se termine
  • Fin de définition de fonction
  • Lire deux entrées A et B
  • res = multiplication (A, B)
  • Ne rien afficher

Exemple

#include <iostream>
#include <sstream>

using namespace std;
int multiply( int A, int B) {
   if( A < B ) {
      return multiply( B, A );
   }
   else if( B != 0 ) {
      return A + multiply( A, B - 1 );
   }
   else {
      return 0;
   }
}

int main()
{
   cout << "Multiplication of 5, 7 is: " << multiply( 5, 7 ) << endl;
   cout << "Multiplication of 8, 0 is: " << multiply( 8, 0 ) << endl;
   cout << "Multiplication of 25, 3 is: " << multiply( 25, 3 ) << endl;
   cout << "Multiplication of 9, 1 is: " << multiply( 9, 1 ) << endl;
}
Copier après la connexion

Sortie

Multiplication of 5, 7 is: 35
Multiplication of 8, 0 is: 0
Multiplication of 25, 3 is: 75
Multiplication of 9, 1 is: 9
Copier après la connexion

Regardez, dans ce programme, les paramètres de fonction A et B sont tous deux des entiers. Désormais, après chaque étape, il décrémente le deuxième paramètre B de 1 et ajoute A à A lui-même. Ainsi, la fonction effectue le processus de multiplication.

Conclusion

La récursion est le processus d'appel de la même fonction à partir de la fonction elle-même. Lorsque nous appelons une fonction de manière récursive, nous mettons à jour ou modifions légèrement le jeu de paramètres afin que le même effet ne se reproduise pas encore et encore, puis divisons le problème en sous-problèmes plus petits et résolvons le problème en résolvant ces petits problèmes de manière ascendante. approche . Presque tout ce qui peut être implémenté à l’aide d’une boucle peut également l’être à l’aide de la récursivité. Dans cet article, nous avons vu le processus simple de multiplication de deux entiers par récursion. Ajoutez des entiers plusieurs fois pour obtenir le résultat final de la multiplication.

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!

Étiquettes associées:
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