Факториал

Вычисление факториала на 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 не будет опубликован. Обязательные поля помечены *

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