0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 49
1

Рекурсия: нахождение двойного факториала

17.11.2009, 13:44. Показов 1659. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот не знаю,как описать рекурсивную функцию нахождения двойного факториала..

вот мой вариант,он он естественно не правильный))

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
uses crt;
function Factorial(N:integer):longint;
var i:byte;
    t:longint;
begin
if odd(N)then
  begin
    t:=1;
    for i:=1 to (N div 2)+1 do
    t:=t*(2*i-1);
  end
else if not odd(N) then
  begin
    t:=1;
    for i:=1 to N div 2 do
    t:=t*2*i;
  end;
Factorial:=t;
end;
var z:longint;
    k,i:byte;
begin
clrscr;
i:=0;
inc(i);
write('k=');readln(k);
writeln('K!!=',Factorial(k));
readln
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2009, 13:44
Ответы с готовыми решениями:

Значение двойного факториала
Возникли осложнения с решением этой задачи, пожалуйста помогите: Описать функцию Fact2(N)...

Использование функции вычисления двойного факториала
Помогите, пожалуйста, решить. Используя 6-значный учебный шифр (его обозначение - b1, b2, b3,...

Рекурсия: вычисление факториала
Вычислить факториал S. S=1!*2!*...*n!

Рекурсия: нахождение суммы ряда
Нужно найти сумму ряда 1)рекурсией и 2) суммированием в цикле. Сделал, но явно не не правильно: ...

2
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
17.11.2009, 14:28 2
Лучший ответ Сообщение было отмечено Work Group как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt;
var n:integer;
function Fac_2(n:integer):longint;
begin
if n=1 then Fac_2:=1
else if n=2 then Fac_2:=2
else fac_2:=n*fac_2(n-2);
end;
begin
clrscr;
Write('n=');readln(n);
write('n!!=',fac_2(n));
readln;
end.
В целых числах работает до 17.
1
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 49
17.11.2009, 15:03  [ТС] 3
спасибо,но тут можно небольшой косметический штришок сделать...всё сделать через один if и что-бы програ не вылетала при вводе отрицательных чисел

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
uses crt;
var n:integer;
function Fac_2(n:integer):longint;
begin
if n<=2 then Fac_2:=n
else fac_2:=n*fac_2(n-2);
end;
begin
clrscr;
Write('n=');readln(n);
write('n!!=',fac_2(n));
readln;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2009, 15:03
Помогаю со студенческими работами здесь

Рекурсия: нахождение N-го члена арифметической прогрессии
описать рекурсивную функцию нахождения N-го члена арифметической прогрессии: An=A1+D*(N-1)

Рекурсия: нахождение n-го члена последовательности Фибоначчи
Помогите пожалуйста!!! надо решить задачу с помощью рекурсии! Найти n-й член Фибоначчи используя...

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

Рекурсия: нахождение максимального элемента последовательности
Дана последовательность, состоящая из n действительных чисел, найти максимальное по величине число.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru