Maison  >  Article  >  développement back-end  >  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

王林
王林avant
2023-08-28 11:01:111644parcourir

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 )
}

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
    • 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;
    }
    

    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
    

    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!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer