Calcul de puissance récursif en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), nous allons apprendre à calculer le résultat d'un nombre donné élevé à la puissance n en utilisant la récursion en programmation C.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c/BasicsGroup -.-> c/operators("Operators") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/FileHandlingGroup -.-> c/read_files("Read Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/operators -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/function_declaration -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/function_parameters -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/math_functions -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/recursion -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/create_files -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/read_files -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/user_input -.-> lab-123307{{"Calcul de puissance récursif en C"}} c/output -.-> lab-123307{{"Calcul de puissance récursif en C"}} end

Créer un fichier C

Créez un nouveau fichier nommé main.c dans le répertoire ~/project/. C'est là que nous allons écrire notre code C.

Déclarer le prototype de la fonction

La fonction power() prend deux entiers en entrée et retourne la valeur après avoir effectué l'opération de puissance.

int power(int base, int exponent);

Définir la fonction power()

La fonction power() effectue l'opération de puissance en s'appelant elle-même de manière récursive. Si l'exposant est égal à zéro, elle retourne 1. Sinon, elle retourne la valeur de la base multipliée par le résultat de l'appel de la fonction power() avec la même base et un exposant diminué de 1.

int power(int base, int exponent)
{
    if(exponent == 0) // Cas de base
        return 1;
    else
        return base * power(base, exponent - 1); // Cas récursif
}

Obtenir les entrées de l'utilisateur et appeler la fonction power()

Obtenez la base et l'exposant de l'utilisateur à l'aide de la fonction scanf(), puis transmettez-les en tant qu'arguments à la fonction power(). Enfin, affichez le résultat à l'aide de la fonction printf().

int main()
{
    int base, exponent, result;

    printf("Enter the base: ");
    scanf("%d", &base);

    printf("Enter the exponent: ");
    scanf("%d", &exponent);

    result = power(base, exponent);

    printf("%d^%d = %d", base, exponent, result);

    return 0;
}

Compiler et exécuter le code

Enregistrez les modifications et compilez le programme à l'aide du compilateur gcc comme suit :

gcc main.c -o main

Maintenant, exécutez le programme en tapant la commande suivante dans le terminal :

./main

Sortie

La sortie affichera le résultat de la base élevée à l'exposant que l'utilisateur a saisi.

Résumé

Dans ce laboratoire, nous avons appris à calculer un nombre élevé à la puissance n en utilisant la récursivité en programmation C. Nous avons atteint cet objectif en utilisant une fonction récursive qui s'appelle elle-même jusqu'à atteindre le cas de base, où l'exposant est égal à zéro, puis elle retourne la valeur 1. Nous avons stocké les valeurs obtenues à partir de la fonction récursive dans une variable et les avons affichées à l'utilisateur à l'aide de la fonction printf().

La fonction power() peut être utilisée pour élever n'importe quel nombre à une puissance donnée en programmation C.