Вычисление факториала числа

Задача: 

Факториал числа представляет собой произведение всех натуральных чисел от 1 до этого числа включительно. Например, факториал числа 7 выглядит так:
1 * 2 * 3 * 4 * 5 * 6 * 7

Факториал числа обозначается как само число после которого следует восклицательный знак. Например, 7!. Таким образом:
7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040

С увеличением числа его факториал быстро возрастает. Так если 3! = 6, то уже 10! = 3628800. Поэтому для натуральных чисел больше 12-ти в языке программирования Паскаль просто так факториал вычислить нельзя.

Допустим, требуется определить факториал числа, которое ввел пользователь.

Алгоритм решения задачи: 

Переменной factorial сначала присваивается значение 1.
0! = 1 и 1! = 1.

Если пользователь ввел число больше единицы, то выполняется цикл, в теле которого на каждой итерации значение переменной factorial умножается на следующее натуральное число (переменную i).

Программа на языке Паскаль: 

var
    factorial: longint;
    n, i: byte;
 
begin
    write('n = '); readln(n);
 
    factorial := 1;
 
    for i:=2 to n do
        factorial := factorial * i;
 
    writeln('n! = ', factorial);
 
readln;
end.

Комментарии

помогите с факториалом

Используя рекурсию (обращение функции или процедуры к самой себе), напишите программу расчета факториала целого положительного числа.

Решите

Помогите я щас сижу на информатике
Обчислити значення виразу z=x!/(y+1)!, використавши підпрограму-функцію факторіал.

Как вычислить (2^n)!

Как вычислить (2^n)!

var s,n:real;beginreadln

var s,n:real;
begin
readln (n);
s:=exp(n*ln(2));
writeln (s);
end.

Степени

Power (2, n)

требуется помощь

Нужно написать программу расчёта факториала числа с циклом

Помогите пожалуйста составить

Помогите пожалуйста составить программу.
Дано целое положительное число n.
Составить программу, которая, если число четное, выведет последнюю цифру этого числа.

Вот держи, дарю:)

var a,b:integer;
begin
  writeln('Введите число');
  read(a);
  if a mod 2=0 then b:= a mod 10
  else writeln('Число нечётное');
  writeln(b);
end.

Вычислить сумму S значений

Вычислить сумму S значений функции Y = f(x):
S=∑i lg((x^2+1)/(i-1)!)
при x=-1+0.2*I; I=1.10

Помогите с решением

Требуется написать программу, которая может вычислить последнюю, не равную нулю цифру для любого факториала (0<=N<=10000). Например, для числа 5 программа должна выдать 2, поскольку 5!=120, и 2 – последняя ненулевая цифра в числе 120.
Во входном файле input.txt записана серия неотрицательных целых чисел, не превышающих 10000, каждое число в своей собственной строке.
Вывод
В выходной файл output.txt для каждого целого должна содержаться точно одна строка. Каждая строка должна содержать величину N, в позициях с 1 по 5 с ведущими пробелами и не ведущими нулями. Позиции с 6 по 9 должны содержать “->”. Позиция 10 должна содержать единственную последнюю не равную нулю цифру N!.

Поиск последней не равной

Поиск последней не равной нулю цифры числа:

var
    a: longint;
 
begin
    readln(a);
    while True do begin
        if a mod 10 <> 0 then begin
            writeln(a mod 10);
            break;
        end;
        a := a div 10;
    end;
end.

В Паскале нельзя вычислить даже 100!, так как значение выйдет за пределы возможного longint. Целочисленного типа длиннее longint в Паскале нет.

Длиннее longint - int64

взять тип int64

Говорят, что решать нужно

Говорят, что решать нужно через массивы, но не было возможности достаточно ознакомиться с ними

Массивы используют для записи

Массивы используют для записи очень длинного числа, разбивая его цифры на группы.

но при больших значениях n

но при больших значениях n это программа не верна.

var

var a,b,d,c:integer;
begin
readln(a);
d:=1;
for b:=1 to a do
begin
c:=c+1;
d:=d*c;
end;
write(d);
end.

еще ошибочка: ты не присвоил

еще ошибочка: ты не присвоил С значение до цикла! Оно должно быть нулевым.
С тут нужна, т.к. обозначает множитель.

можно не присваивать, тогда

можно не присваивать, тогда по умолчанию равно 0.

зачем с?

Какой смысл переменной с? Она лишняя

N!-M!

Составить программу для определения N!-M!

N! - M!

program faktorial;
var n, m, i, res, res2: integer;// инициализируем переменные
begin // начало
  read (n, m);// считываем число в факториале
  res:=1; // присваиваем будущему результату 1
  res2:=1;
  for i:=1 to n do // заходим в цикл FOR (уроки 5,6), присваиваем i от 1 до n
    res:=res*i; // умножаем наш результат на i
  for i:=1 to m do // заходим в цикл FOR (уроки 5,6), присваиваем i от 1 до m
    res2:=res2*i; // умножаем наш результат на i
  write (res-res2); // выводим результат
end. // конец программы