Нахождение факториала с использованием рекурсии

CCBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы научимся находить факториал заданного числа с использованием рекурсии в языке программирования C. Факториал обозначается символом '!' и представляет собой произведение всех положительных целых чисел, меньших или равных заданному числу. Например, факториал числа 5 равен 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{{"Нахождение факториала с использованием рекурсии"}} c/function_declaration -.-> lab-123242{{"Нахождение факториала с использованием рекурсии"}} c/function_parameters -.-> lab-123242{{"Нахождение факториала с использованием рекурсии"}} c/recursion -.-> lab-123242{{"Нахождение факториала с использованием рекурсии"}} c/create_files -.-> lab-123242{{"Нахождение факториала с использованием рекурсии"}} c/user_input -.-> lab-123242{{"Нахождение факториала с использованием рекурсии"}} c/output -.-> lab-123242{{"Нахождение факториала с использованием рекурсии"}} end

Инициализация функции main()

В функции main мы объявляем переменные для хранения введенного значения и вычисленного факториала. Затем мы просим пользователя ввести значение, для которого будет найден факториал.

#include <stdio.h>

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

Создайте функцию для вычисления факториала с использованием рекурсии

Теперь мы создадим функцию под названием "factorial", которая принимает целочисленный параметр "num" и возвращает целочисленное значение. В этой функции мы будем использовать рекурсию для вычисления факториала заданного числа. Если значение заданного числа равно 1 или 0, мы вернем 1, так как факториал обоих значений равен 1. Если заданное число больше 1, мы вычислим его факториал с использованием рекурсии и вернем значение.

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

Вызовите функцию факториала в функции main и выведите результат

Теперь мы вызовем функцию "factorial" внутри функции "main" и передадим введенное значение в качестве параметра. Затем мы сохраним возвращаемое значение в переменную "factorial" и выведем результат в консоль.

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

Скомпилируйте и запустите программу

Теперь, когда программа написана, сохраните файл под именем'main.c' в директории '~/project/'. Откройте терминал и перейдите в директорию, содержащую файл'main.c'. Используйте следующую команду для компиляции программы:

gcc main.c -o main

После успешной компиляции программы используйте следующую команду для запуска программы:

./main

Полный код'main.c'

Используйте этот код в качестве ссылки при необходимости.

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

Резюме

В этом практическом занятии мы узнали, как вычислять факториал заданного числа с использованием рекурсии на C. Мы создали функцию, которая использует рекурсию для нахождения факториала, и функцию main для ввода числа и вызова функции факториала.