Text: |
ФІО = Руденко Виктор
Запитання:вот пример на рекурсию:
#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) - ôóíêöèÿ äëÿ âû÷èñëåíèÿ ôàêòîðèàëà.
system("pause");
return 0;
}
====================================
ANSWER ====================================
#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;
}
END of ANSWER ====================================
|