Факториал

Вычисление факториала на C++ можно провести с помощью циклов или рекурсии.

Стоит отметить, что так считают только факториалы небольших чисел. А для больших факториалов применяют более сложные подходы. Рассмотрим далее как расчёт факториалов с помощью циклов, так и с помощью рекурсии.

Вычисление факториала с помощью цикла for

Программа выглядит примерно так:

В этой программе вначале подключаются заголовочные файлы iostream.h и conio.h.  Затем объявляются переменные:

  1. n - целое число, факториал, которого будет вычисляться;
  2. i - счётчик;
  3. res - переменная для хранения текущего результата.

Затем осуществляется ввод с помощью команды cin, это можно сделать и по-другому, например, с помощью scanf.

Далее текущему результату присваивается значение 1. И в цикле проводится n умножений.

После этого подсчитанный факториал выводится на экран с помощью команды cout. И ожидается нажатие пользователем клавиши (команда getch).

Вычисление факториала с помощью рекурсии

Здесь всё аналогично предыдущему случаю за исключением цикла for, которого нет. Вместо него рекурсивная функция factorial.

Эта функция всякий раз вызывает сама себя, уменьшая значение i на 1. А когда i становится равным нулю, функция завершает вычисления (используется оператор if).

Опубликовано

Факториал: 8 комментариев

    1. Например, так
      #include <iostream.h> // подключаем cin/cout
      #include <conio.h> // подключаем getch

      int main()
      {
        int n;
        int i, j;
        long long res1, res2;

        cin >> n;
        res1 = 1;
        res2 = 0;
        for (i = 1; i <= 2 * n - 1; i = i + 2)   {
          res1 = 1;
          for (j = 1; j <= i; j++)     {
            res1 = res1 * j;
          }
          res2 = res2 + res1;
        }
        cout << res2;
        getch();
      }

    1. А это точно нужно? Обычно начинающим такое не задают. Но там тоже не очень сложно. Можно использовать библиотеки для работы с большими целыми числами, например, FreeLIP. Бывают ещё задания, в которых достаточно вычислить приближённое значение факториала, воспользовавшись формулой Стирлинга
      n! ≈ sqrt(2πn)(n/e)^n.

Добавить комментарий для Анастасия Отменить ответ

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

Капча загружается...