Var y: System.uint64; //Большая цЫфра же и положительная x, i: byte; //Нет смысла большие числа брать слишком, переполнение будет
begin readln(x); //Принимаем число... y := 1; for i := 1 to x do y *= i; //...и умножаем такое-то количество раз if (y = 0) then //Выводим, предусмотрев переполнение writeln('Слишком большая цЫферка') else writeln(y); end.
Int64 - это то же самое, что LongInt, а Uint64 (unsign long int) - длинное число без знака, при правильном использовании позволяет записывать в переменную числа, в 2 раза превышающие максимум Int64
Сам код(Для C++):
#include <iostream>
using namespace std;
long double fact(int N)
{
if(N < 0) // если пользователь ввел отрицательное число
return 0; // возвращаем ноль
if (N == 0) // если пользователь ввел ноль,
return 1; // возвращаем факториал от нуля
else // Во всех остальных случаях
return N * fact(N - 1); // делаем рекурсию.
}
int main()
{
int N; setlocale(0,""); // Включаем кириллицу
cout << "Введите число для вычисления факториала: ";
cin >> N;
cout << "Факториал для числа " << N << " = " << fact(N) << endl << endl; // fact(N) - функция для вычисления факториала.
return 0;
}
Объяснение:
2.1. Формулировка задания.
Разработка программы для вычисления факториала.
Факториал числа — это произведение натуральных чисел от 1 до самого числа (включая данное число). Обозначается факториал восклицательным знаком «!».
Например,
5!=1×2×3×4×5
3!=1×2×3
И тому подобное.
Создаем новый текстовый документ, вводим код для вычисления факториала. После этого компилируем программу.
y: System.uint64; //Большая цЫфра же и положительная
x, i: byte; //Нет смысла большие числа брать слишком, переполнение будет
begin
readln(x); //Принимаем число...
y := 1;
for i := 1 to x do
y *= i; //...и умножаем такое-то количество раз
if (y = 0) then //Выводим, предусмотрев переполнение
writeln('Слишком большая цЫферка')
else
writeln(y);
end.
Int64 - это то же самое, что LongInt, а Uint64 (unsign long int) - длинное число без знака, при правильном использовании позволяет записывать в переменную числа, в 2 раза превышающие максимум Int64