Различные методы вычисления факториала в C++

В C++ нет встроенной функции факториал, но ее можно реализовать различными методами. Вот несколько подходов:

Метод 1: итеративный подход

#include <iostream>
int factorial(int n) {
    int result = 1;
    for (int i = 2; i <= n; ++i) {
        result *= i;
    }
    return result;
}
int main() {
    int number;
    std::cout << "Enter a number: ";
    std::cin >> number;
    std::cout << "Factorial: " << factorial(number) << std::endl;
    return 0;
}

Метод 2: рекурсивный подход

#include <iostream>
int factorial(int n) {
    if (n == 0 || n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}
int main() {
    int number;
    std::cout << "Enter a number: ";
    std::cin >> number;
    std::cout << "Factorial: " << factorial(number) << std::endl;
    return 0;
}

Метод 3. Использование библиотеки

#include <iostream>
#include <numeric>
int main() {
    int number;
    std::cout << "Enter a number: ";
    std::cin >> number;
    int factorial = std::accumulate(1, number + 1, 1, std::multiplies<int>());
    std::cout << "Factorial: " << factorial << std::endl;
    return 0;
}

Метод 4. Использование цикла с временной переменной

#include <iostream>
int factorial(int n) {
    int result = 1;
    while (n > 1) {
        result *= n--;
    }
    return result;
}
int main() {
    int number;
    std::cout << "Enter a number: ";
    std::cin >> number;
    std::cout << "Factorial: " << factorial(number) << std::endl;
    return 0;
}