Encontrando el factorial utilizando recursividad

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo encontrar el factorial de un número dado utilizando la recursividad en el lenguaje de programación C. El factorial se denota por '!' y es el producto de todos los enteros positivos que son menores o iguales al número dado. Por ejemplo, el factorial de 5 es 5 x 4 x 3 x 2 x 1 = 120.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123242{{"Encontrando el factorial utilizando recursividad"}} c/function_declaration -.-> lab-123242{{"Encontrando el factorial utilizando recursividad"}} c/function_parameters -.-> lab-123242{{"Encontrando el factorial utilizando recursividad"}} c/recursion -.-> lab-123242{{"Encontrando el factorial utilizando recursividad"}} c/create_files -.-> lab-123242{{"Encontrando el factorial utilizando recursividad"}} c/user_input -.-> lab-123242{{"Encontrando el factorial utilizando recursividad"}} c/output -.-> lab-123242{{"Encontrando el factorial utilizando recursividad"}} end

Inicializar la función main()

En la función principal, declararemos variables para almacenar el valor ingresado y el factorial calculado. Luego solicitaremos al usuario que ingrese un valor para el cual se calculará el factorial.

#include <stdio.h>

int main()
{
    int num, factorial;
    printf("Enter a number: ");
    scanf("%d", &num);
}

Crear la función para calcular el factorial utilizando la recursividad

Ahora crearemos una función llamada 'factorial' que toma un parámetro entero 'num' y devuelve un valor entero. En esta función, utilizaremos la recursividad para calcular el factorial del número dado. Si el valor del número dado es igual a 1 o 0, devolveremos 1 ya que el factorial de ambos valores es 1. Si el número dado es mayor que 1, calcularemos su factorial utilizando la recursividad y devolveremos el valor.

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

Llamar a la función factorial en la función principal y mostrar el resultado

Ahora llamaremos a la función 'factorial' dentro de la función'main' y pasaremos el valor ingresado como parámetro. Luego almacenaremos el valor devuelto en la variable 'factorial' y mostraremos el resultado en la consola.

#include <stdio.h>

int factorial(int num);

int main()
{
    int num, factorial;
    printf("Enter a number: ");
    scanf("%d", &num);

    factorial = fact(num);
    printf("Factorial of %d is %d", num, factorial);

    return 0;
}

注意:代码中的 fact(num) 应为 factorial(num),翻译时按照原文翻译了,实际使用时应修正。

Compilar y ejecutar el programa

Ahora que se ha escrito el programa, guarde el archivo como'main.c' en el directorio '~/project/'. Abra la terminal y navegue hasta el directorio que contiene el archivo'main.c'. Utilice el siguiente comando para compilar el programa:

gcc main.c -o main

Una vez que el programa se ha compilado correctamente, utilice el siguiente comando para ejecutarlo:

./main

Código completo de'main.c'

Utilice este código como referencia si es necesario.

#include <stdio.h>

int factorial(int num);

int main()
{
    int num, factorial;
    printf("Enter a number: ");
    scanf("%d", &num);

    factorial = factorial(num);
    printf("Factorial of %d is %d", num, factorial);

    return 0;
}

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

Resumen

En este laboratorio, aprendimos cómo calcular el factorial de un número dado utilizando la recursividad en C. Creamos una función que utiliza la recursividad para encontrar el factorial y una función principal para ingresar un número y llamar a la función factorial.