Нахождение факториала числа на C

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

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

Введение

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

Примечание: вам нужно самостоятельно создать файл ~/project/main.c, чтобы практиковаться в написании кода и узнать, как компилировать и запускать его с использованием gcc.

cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/FunctionsGroup -.-> c/recursion("Recursion") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123240{{"Нахождение факториала числа на C"}} c/for_loop -.-> lab-123240{{"Нахождение факториала числа на C"}} c/function_declaration -.-> lab-123240{{"Нахождение факториала числа на C"}} c/math_functions -.-> lab-123240{{"Нахождение факториала числа на C"}} c/recursion -.-> lab-123240{{"Нахождение факториала числа на C"}} c/user_input -.-> lab-123240{{"Нахождение факториала числа на C"}} c/output -.-> lab-123240{{"Нахождение факториала числа на C"}} end

Понимание факториала

Факториал числа (обозначается как n!) для числа (скажем n) представляет собой произведение всех чисел, предшествующих n, на само число. Мы можем сказать, что:

!n = n *!(n - 1)

Например:

!6 = 6 * 5 * 4 * 3 * 2 * 1 = 720
!12 = 12 * 11 * 10 * 9 * 8 * 7 *!6 = 479 001 600

Важные аспекты:

  • Факториал 0 равен 1.
  • Факториал отрицательных чисел не существует.

Составление алгоритма

Следуйте следующим шагам для программы нахождения факториала:

  1. Объявите переменные n и fact = 1. n - это число, факториал которого необходимо вычислить, а fact - переменная, в которой мы будем хранить результат.
  2. Считайте ввод от пользователя в n.
  3. Инициализируйте итератор цикла i = 1 и запустите цикл до тех пор, пока i <= n.
  4. В каждой итерации цикла выполните следующее:
    • fact = fact * i
    • i++
  5. Выведите fact.

Написание программы на C

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

#include<stdio.h>
int main()
{
    int n,i;
    long int fact=1;
    printf("Enter the number: ");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        fact=fact*i;    // calculating factorial
    }
    printf("Factorial of %d is %ld",n,fact);
    return 0;
}

Тестирование программы

Протестируем нашу программу, запустив ее и проверив вывод.

Enter the number: 5
Factorial of 5 is 120

Финальная программа

Вот финальная программа, которая находит факториал числа с использованием цикла for:

#include<stdio.h>
int main()
{
    int n,i;
    long int fact=1;
    printf("Enter the number: ");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        fact=fact*i;    // calculating factorial
    }
    printf("Factorial of %d is %ld",n,fact);
    return 0;
}

Резюме

В этом практическом занятии мы научились писать программу на C для нахождения факториала числа с использованием цикла for. Мы использовали простой алгоритм и последовательным шаговым процессом достигли нашей цели. Программа получает ввод от пользователя, вычисляет факториал с использованием цикла и выводит результат на экран. Мы рассмотрели некоторые важные аспекты, такие как инициализация переменных и ограничения типов данных int и long int.