Для решения задачи вычисления факториала числа (N) на языке программирования Паскаль (Pascal) можно воспользоваться несколькими подходами. Один из наиболее простых способов — использовать цикл для последовательного перемножения чисел от 1 до (N). Давайте разберем это подробнее и напишем программу.
Что такое факториал?
Факториал числа (N) ((N!)) — это произведение всех натуральных чисел от 1 до (N). Например:
- (2! = 1 \times 2 = 2),
- (3! = 1 \times 2 \times 3 = 6),
- (4! = 1 \times 2 \times 3 \times 4 = 24),
- (5! = 1 \times 2 \times 3 \times 4 \times 5 = 120).
Факториал очень быстро растет, поэтому в задаче ограничение на (N) составляет 12. Факториал 12 равен (479001600), что укладывается в диапазон целых чисел.
Алгоритм решения
- Ввести значение (N).
- Проверить, что (N) — натуральное число (в данной задаче это гарантируется).
- Использовать цикл для вычисления факториала:
- Завести переменную, которая будет хранить результат ((F)).
- Инициализировать (F = 1).
- Последовательно умножать (F) на числа от 2 до (N).
- Вывести результат.
Программа на Паскале
Вот как можно реализовать программу:
program FactorialCalculation;
var
N, i, F: integer; // N - введенное число, i - счетчик, F - результат (факториал)
begin
// Ввод числа N
readln(N);
// Инициализация переменной для факториала
F := 1;
// Вычисление факториала с помощью цикла
for i := 2 to N do
F := F * i;
// Вывод результата
writeln(F);
end.
Разбор программы
Переменные:
- (N) — вводимое число, для которого вычисляется факториал.
- (i) — вспомогательная переменная, используется как счетчик в цикле.
- (F) — переменная для хранения значения факториала (результата).
Цикл:
- Цикл
for i := 2 to N do
последовательно перебирает числа от 2 до (N).
- На каждом шаге выполняется операция
F := F * i
, которая умножает текущее значение (F) на (i).
Начальное значение (F):
- Факториал любого числа начинается с единицы ((1!) = 1), поэтому переменная (F) инициализируется как 1 перед началом вычислений.
Ввод и вывод:
- Число (N) вводится с клавиатуры с помощью команды
readln(N)
.
- Результат (факториал) выводится на экран с помощью команды
writeln(F)
.
Примеры выполнения программы
Пример 1:
Ввод:
2
Вывод:
2
Пример 2:
Ввод:
3
Вывод:
6
Пример 3:
Ввод:
5
Вывод:
120
Объяснение работы программы на примере (N = 5):
- Вводится значение (N = 5).
- Переменная (F) инициализируется как (F = 1).
- Цикл выполняется 4 раза (для (i = 2, 3, 4, 5)):
- (F := F \times 2 = 2),
- (F := F \times 3 = 6),
- (F := F \times 4 = 24),
- (F := F \times 5 = 120).
- На выходе программа выводит результат (120).
Альтернативный подход: Рекурсия
Факториал также можно вычислить с использованием рекурсии. Пример программы:
program FactorialRecursive;
function Factorial(N: integer): integer;
begin
if N = 1 then
Factorial := 1
else
Factorial := N * Factorial(N - 1);
end;
var
N: integer;
begin
readln(N);
writeln(Factorial(N));
end.
Заключение
Для задачи, в которой (N) ограничено числом 12, лучше использовать первый подход (цикл), так как он проще и понятнее. Рекурсивный метод тоже работает, но менее эффективен для больших значений (N), так как требует больше памяти из-за вложенных вызовов.