Факториал числа представляет собой произведение всех натуральных чисел от 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.
Комментарии
Вычислить сумму S значений
Вычислить сумму S значений функции Y = f(x):
S=∑i lg((x^2+1)/(i-1)!)
при x=-1+0.2*I; I=1.10
Помогите с решением
Требуется написать программу, которая может вычислить последнюю, не равную нулю цифру для любого факториала (0 Во входном файле input.txt записана серия неотрицательных целых чисел, не превышающих 10000, каждое число в своей собственной строке.
Вывод
В выходной файл output.txt для каждого целого должна содержаться точно одна строка. Каждая строка должна содержать величину N, в позициях с 1 по 5 с ведущими пробелами и не ведущими нулями. Позиции с 6 по 9 должны содержать “->”. Позиция 10 должна содержать единственную последнюю не равную нулю цифру N!.
Поиск последней не равной
Поиск последней не равной нулю цифры числа:
В Паскале нельзя вычислить даже 100!, так как значение выйдет за пределы возможного longint. Целочисленного типа длиннее longint в Паскале нет.
Длиннее longint - int64
взять тип int64
Говорят, что решать нужно
Говорят, что решать нужно через массивы, но не было возможности достаточно ознакомиться с ними
Массивы используют для записи
Массивы используют для записи очень длинного числа, разбивая его цифры на группы.
но при больших значениях n
но при больших значениях n это программа не верна.
var
еще ошибочка: ты не присвоил
еще ошибочка: ты не присвоил С значение до цикла! Оно должно быть нулевым.
С тут нужна, т.к. обозначает множитель.
можно не присваивать, тогда
можно не присваивать, тогда по умолчанию равно 0.
зачем с?
Какой смысл переменной с? Она лишняя
N!-M!
Составить программу для определения N!-M!
N! - M!