UML EditorОткрыть редактор

Задачи / Числа / Факториал числа

Факториал числа: блок-схема и алгоритм

n! = 1 · 2 · 3 · … · n. Произведение накапливается так же, как сумма, но начальное значение — 1, а не 0. По определению 0! = 1.

Блок-схема: Факториал числа

Алгоритм по шагам

  1. Ввести n.
  2. Присвоить f = 1.
  3. Для i от 1 до n умножить f на i.
  4. Вывести f.

Открыть блок-схему в редакторе

Пример работы

Входn = 5
Шаг 1f = 1
Шаг 2i = 1: f = 1
Шаг 3i = 2: f = 2
Шаг 4i = 3: f = 6
Шаг 5i = 4: f = 24
Шаг 6i = 5: f = 120
Результат120

Решение на Python

n = int(input())
f = 1
for i in range(1, n + 1):
    f *= i
print(f)

Решение на Pascal

var n, i: integer;
    f: int64;
begin
  readln(n);
  f := 1;
  for i := 1 to n do
    f := f * i;
  writeln(f);
end.

Код блок-схемы

Схема выше нарисована по этому псевдокоду. Скопируйте его в редактор блок-схем или нажмите «Открыть блок-схему в редакторе».

блок-схема: Факториал числа
начало
ввод n
f = 1
для i от 1 до n
    f = f * i
вывод f
конец

Сложность

O(n) умножений. Факториал растёт очень быстро: 20! уже не помещается в 64-битное целое, в Python ограничения нет.

Частые ошибки

  • Начальное значение f = 0 — всё произведение станет нулём.
  • Тип integer в Pascal: 13! уже не помещается в 32 бита, нужен int64.
  • Цикл range(n) в Python идёт от 0 — произведение обнулится.

Похожие задачи

Обозначения фигур и синтаксис кода блок-схем — в справочнике: блок-схема по ГОСТ 19.701. Все задачи.