Trouver la factorielle en utilisant la récursion

CBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons apprendre à trouver la factorielle d'un nombre donné en utilisant la récursion dans le langage de programmation C. La factorielle est notée '!' et est le produit de tous les entiers positifs inférieurs ou égaux au nombre donné. Par exemple, la factorielle de 5 est 5 x 4 x 3 x 2 x 1 = 120.

Initialiser la fonction main()

Dans la fonction principale, nous allons déclarer des variables pour stocker la valeur saisie et la factorielle calculée. Nous demanderons ensuite à l'utilisateur d'entrer une valeur pour laquelle la factorielle sera trouvée.

#include <stdio.h>

int main()
{
    int num, factorial;
    printf("Entrez un nombre : ");
    scanf("%d", &num);
}

Créer la fonction pour calculer la factorielle en utilisant la récursion

Nous allons maintenant créer une fonction appelée 'factorial' qui prend un paramètre entier 'num' et renvoie une valeur entière. Dans cette fonction, nous allons utiliser la récursion pour calculer la factorielle du nombre donné. Si la valeur du nombre donné est égale à 1 ou 0, nous renverrons 1 car la factorielle de ces deux valeurs est 1. Si le nombre donné est supérieur à 1, nous calculerons sa factorielle en utilisant la récursion et renverrons la valeur.

int factorial(int num)
{
    if(num == 0 || num == 1)
    {
        return 1;
    }
    else
    {
        return num * factorial(num-1);
    }
}

Appeler la fonction factorielle dans la fonction principale et afficher le résultat

Nous allons maintenant appeler la fonction 'factorial' à l'intérieur de la fonction'main' et passer la valeur saisie en tant que paramètre. Nous stockerons ensuite la valeur renvoyée dans la variable 'factorial' et afficherons le résultat dans la console.

#include <stdio.h>

int factorial(int num);

int main()
{
    int num, factorial;
    printf("Entrez un nombre : ");
    scanf("%d", &num);

    factorial = fact(num);
    printf("La factorielle de %d est %d", num, factorial);

    return 0;
}

注:代码中的“fact(num)”应改为“factorial(num)”,翻译中保留了原文错误。

Compiler et exécuter le programme

Maintenant que le programme a été écrit, enregistrez le fichier sous le nom'main.c' dans le répertoire '~/project/'. Ouvrez le terminal et accédez au répertoire contenant le fichier'main.c'. Utilisez la commande suivante pour compiler le programme :

gcc main.c -o main

Une fois le programme compilé avec succès, utilisez la commande suivante pour exécuter le programme :

./main

Code complet de'main.c'

Utilisez ce code comme référence si nécessaire.

#include <stdio.h>

int factorial(int num);

int main()
{
    int num, factorial;
    printf("Entrez un nombre : ");
    scanf("%d", &num);

    factorial = factorial(num);
    printf("La factorielle de %d est %d", num, factorial);

    return 0;
}

int factorial(int num)
{
    if(num == 0 || num == 1)
    {
        return 1;
    }
    else
    {
        return num * factorial(num-1);
    }
}

Résumé

Dans ce laboratoire, nous avons appris à calculer la factorielle d'un nombre donné en utilisant la récursion en C. Nous avons créé une fonction qui utilise la récursion pour trouver la factorielle et une fonction principale pour entrer un nombre et appeler la fonction factorielle.