В 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;
}