Рекурсивное вычисление факториала
n! = n * (n - 1) * (n - 2) * ...*1
Примеры значений для разных n
:
1! = 1 2! = 2 * 1 = 2 3! = 3 * 2 * 1 = 6 4! = 4 * 3 * 2 * 1 = 24 5! = 5 * 4 * 3 * 2 * 1 = 120
Написать функцию вычисления факториала числа, используя рекурсию.
#include <iostream> using namespace std; long double fact(int N) { if(N < 0) // если пользователь ввел отрицательное число return 0; // возвращаем ноль if (N == 0) // если пользователь ввел ноль, return 1; // возвращаем факториал от нуля - не удивляетесь, но это 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; }
Комментарии