
Вопрос задан 05.07.2023 в 15:44.
Предмет Информатика.
Спрашивает Конин Илья.
Вычислите n! без использования цикла. (С++) Если можно то с объяснением


Ответы на вопрос

Отвечает Черняева Мария.
#include <iostream>
long long f(long long _n) {
if (_n <= 1) return 1;
else return _n * f(_n - 1);
}
int main()
{
long long n;
std::cin >> n;
std::cout << f(n);
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Вы можете вычислить факториал числа n с использованием рекурсии. Факториал числа n (обозначается как n!) - это произведение всех положительных целых чисел от 1 до n. Формально, n! = n * (n-1) * (n-2) * ... * 3 * 2 * 1.
Вот как это можно сделать на C++ с использованием рекурсии:
cpp#include <iostream>
// Функция для вычисления факториала с использованием рекурсии
int factorial(int n) {
if (n == 0 || n == 1) {
return 1; // Факториал 0 и 1 равен 1
} else {
return n * factorial(n - 1); // Рекурсивно вычисляем факториал для n-1
}
}
int main() {
int n;
std::cout << "Введите число n: ";
std::cin >> n;
if (n < 0) {
std::cout << "Факториал отрицательного числа не определен." << std::endl;
} else {
int result = factorial(n);
std::cout << "Факториал " << n << " равен " << result << std::endl;
}
return 0;
}
Давайте рассмотрим, как это работает:
- Если введенное число
n
равно 0 или 1, то факториал этого числа равен 1. Это базовый случай рекурсии. - В противном случае, для числа
n
больше 1, функцияfactorial
вызывает себя с аргументомn - 1
и умножает результат наn
, чтобы получить факториал числаn
.
При использовании этой рекурсивной функции, программа будет рекурсивно уменьшать значение n
, пока не достигнет базового случая. Затем она начнет вычислять факториалы для каждого значения n
от 1
до введенного числа.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili