ВебмастерскаяСекреты вебмастера

Программа на C++ для рассчета факториала

Программа на C++ для рассчета факториала

Факториал числа — это произведение всех целых чисел от 1 до этого числа. Факториал может быть определен только для целых положительных чисел.

Факториал отрицательного числа не существует. А факториал 0 равен 1.

Например,

Факториал положительного числа n, скажем 5, обозначается через 5! и задается как:


5! = 1 * 2 * 3 * 4 * 5 = 120


Итак, математическая логика для факториала такова:


n! = 1 * 2 * 3 * ... * n
n! = 1 если n = 0 или n = 1


В приведенной ниже программе пользователю предлагается ввести положительное целое число. Затем вычисляется факториал этого числа и отображается на экране.


// подключаем заголовочный файл для std::cout, std::cin
#include <iostream>

интервал main () 
{
    интервал n;
    длинный двойной факториал = 1,0;

cout << «Введите положительное число: «;
// записываем введенное число в ранее объявленную переменную
cin >> n;

if (n < 0)
{
cout << «Ошибка! Факториал отрицательного числа не существует.»;
}
else
{
for(int i = 1; i <= n; ++i) {
factorial *= i;
}
cout << «Факториал числа » << n << » = » << factorial;
}

return 0;
}


Вывод:


$ ./factorial_cpp

Введите положительное число: 12
Факториал числа 12 = 479001600


В этой программе мы получаем положительное целое число от пользователя и вычисляем факториал с помощью цикла for. Если пользователь вводит отрицательное число, выводим сообщение об ошибке.

Мы объявили тип переменной factorial как long double, поскольку факториал числа может быть очень большим.

Когда пользователь вводит положительное целое число (скажем, 5), выполняется цикл for и вычисляет факториал. Значение i изначально равно 1.

Программа выполняется до тех пор, пока утверждение i меньше n не станет ложным. При этом на экране выводится факториал 5 = 120.

Стоит отметить, что эта программа может вычислять факториал только для n = 1754 или некоторого целого значения, близкого к нему. Значения больше 1754 уже не будут отображаться корректно, поскольку результаты превышают емкость переменной factorial.

Источник

Статьи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Back to top button