Вычисление факториала числа с помощью рекурсии на С++
Вычислить факториал числа можно по следующей формуле:n! = n*(n-1)*(n-2)*…*1*1
При этом 1!=1 и 0!=1.
Факториал числа % равен:
5! = 5*4*3*2*1 = 120
Составим программу на С++ для вычисления факториала введенного пользователем целого числа.
Используем рекурсивную функцию fact(n), которая будет возвращать 1, если аргумент равен 0, 0, если аргумент отрицательный, и будет вызывать себя в прочих случаях с аргументом, уменьшенным на единицу..
Текст программы:
#include<iostream>Поскольку факториал отрицательного числа не существует, функция возвращает 0, если пользователь введет такое число. Вызов функции продолжается, пока аргумент не будет равен 0, при этом функция вернет 1.
using namespace std;
int fact (unsigned long number)
{
if(number<0) return 0;
if(number==0) return 1;
return number*fact(number - 1);
}
void main()
{
unsigned long n;
cout<<"Vvedite celoje chislo: ";
cin>>n;
cout<<"\nFactorial chisla "<<n<<" raven "<<fact(n)<<endl;
cin.get();
}
