Консультация № 137906
26.05.2008, 21:32
0.00 руб.
0 1 1
Описать функцию Fact2(N) вещественного типа, вычисляющую двойной факториал:
N!! = 1•3•5•…•N, если N — нечетное;
N!! = 2•4•6•…•N, если N — четное
(N > 0 — параметр целого типа; вещественное возвращаемое значение используется для того, чтобы избежать целочисленного переполнения при больших значениях N). С помощью этой функции найти двойные факториалы пяти данных целых чисел.

Обсуждение

Неизвестный
27.05.2008, 06:47
общий
это ответ
Здравствуйте, Никульченко Арсений Александрович!
Можно воспользоваться классическим примером рекурсивного вычисления факториала^
<code>
int factorial (int n) {

if(n==0)
return 1;
else
return n*factorial(n-1);
}
</code>

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

Приложение:
#include <iostream> using namespace std; double Fact2(int n) { return (n <= 2) ? double(n) : double(n) * Fact2(n-2); } int main(int argc, char* argv[]) { for(int i=4; i<10; i++) cout << "Fact2(" << i << ") = " << Fact2(i) << endl; return 0; }
Форма ответа