Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/48: Рейтинг темы: голосов - 48, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 30
1

Двойной факториал

18.11.2009, 12:41. Показов 9321. Ответов 15
Метки нет (Все метки)

Задача: Дано натуральное число n. Получить n!! (!-факториал),равное произведению (1*3*...*n) для нечётного n и (2*4*...*n) для чётного n.

Требования:
Использовать оператор FOR.
Не использовать массивы и строки.
При вычислении факториалов обратить внимание на переполнение. Определить,при каких значениях параметров оно наступает. Постараться отодвинуть эту эту границу путём изменения типа параметров или сокращения дробей.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2009, 12:41
Ответы с готовыми решениями:

Двойной факториал
подскажите как написать функцию для вычисления х!!

Вычислить двойной факториал
привет всем. Суть задания такова найти для N значение (2N)!! нашел программу, но она работает для...

Вычислить двойной факториал
Написал программку под задание: Для числа n вывести произведение "n!!" с условием: если число...

Найти двойной факториал
Дано целое число N (> 0). Найти двойной факториал N: N!! = N•(N–2)•(N–4)•… (последний сомножитель...

15
28 / 28 / 7
Регистрация: 03.10.2009
Сообщений: 122
18.11.2009, 15:36 2
Delphi
1
2
3
4
fch:=1; fnech:=1; 
for i:=1 to n do
if i mod 2 =0 then fch:=fch*i; f:=fch;
else fnech:=fnech*i; f:=fnech;
0
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 30
18.11.2009, 20:18  [ТС] 3
а можешь полностью написать пожалуйста,если не трудно?
0
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
18.11.2009, 20:25 4
правильность программы не проверял!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program Pipa;
uses crt;
var fch,fnech,f,i,n:integer;
 begin
  ClrScr;
  Writeln('Введи число n');
  Readln(n);
   fch:=1;
   fnech:=1;
    for i:=1 to n do
     if i mod 2=0 then
    begin
      fch:=fch*i;
      f:=fch;  
    end
     else
      fnech:=fnech*i;
      f:=fnech;
    Writeln(f);
   Readln;
  end.
0
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 30
18.11.2009, 20:44  [ТС] 5
Error 97:
invalid FOR control variable
0
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
18.11.2009, 20:47 6
у меня все нормально!
0
4 / 4 / 2
Регистрация: 17.11.2009
Сообщений: 32
18.11.2009, 20:52 7
как удалять сообщения?
0
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
18.11.2009, 20:54 8
никак, удалять может только модератор
0
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 30
18.11.2009, 21:01  [ТС] 9
у меня не нормально,на фор жалуется(

Добавлено через 3 минуты
вроде заработало,для чётных кажется правильно,но для неч ответ с минусом вылазит....
0
Босс
161 / 126 / 10
Регистрация: 03.06.2009
Сообщений: 750
18.11.2009, 21:07 10
var n:longint;
0
281 / 260 / 32
Регистрация: 11.11.2009
Сообщений: 605
18.11.2009, 21:28 11
Цитата Сообщение от Пипа Посмотреть сообщение
Задача: Дано натуральное число n. Получить n!! (!-факториал),равное произведению (1*3*...*n) для нечётного n и (2*4*...*n) для чётного n.

Требования:
Использовать оператор FOR.
Не использовать массивы и строки.
При вычислении факториалов обратить внимание на переполнение. Определить,при каких значениях параметров оно наступает. Постараться отодвинуть эту эту границу путём изменения типа параметров или сокращения дробей.
Самый простой способ - рекурсия:
Delphi
1
2
3
4
5
6
7
function SpecialFactorial(N: integer): longint;
begin
  if N <= 2 then
    Result := N
  else
    Result := N * SpecialFactorial(N-2);
end;
0
60 / 60 / 9
Регистрация: 09.11.2009
Сообщений: 198
18.11.2009, 21:41 12
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
   P, n, i: longint;
 
begin
     write('n = '); readln(n);
     P:=1;
     for i:=n downto 1 do begin
       if (i mod 2)<>(n mod 2) then continue;
       P := P * i;
     end;
     writeln(n,'!! = ',P);
     readln;
end.
1
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 30
18.11.2009, 21:57  [ТС] 13
victor_g
прога работает,спасибо,но вроде нужно произведение факториалов,а вылазит просто факториал(

может нужно ввести в расчёты ещё n2 чётное? а потом перемножить чёт и нечет...
0
60 / 60 / 9
Регистрация: 09.11.2009
Сообщений: 198
18.11.2009, 22:05 14
нет, Вы не правы - посмотрите опеределение двойного факториала
0
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 30
24.12.2009, 10:40  [ТС] 15
if (i mod 2)<>(n mod 2) then continue;

можно объяснение этой строки
0
281 / 260 / 32
Регистрация: 11.11.2009
Сообщений: 605
24.12.2009, 18:26 16
Цитата Сообщение от Пипа Посмотреть сообщение
if (i mod 2)<>(n mod 2) then continue;

можно объяснение этой строки
Если остаток деления на 2 у переменных i и n не совпадают, то "продолжить"
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2009, 18:26

Вычислить двойной факториал
Составьте, пожалуйста, программу для вычисления двойного факториала (2n+1)!! (например...

Вычислить двойной факториал, используя процедуру
Вычислить, используя процедуру у = (2n - 1)!! = 1* 3*5 * ...* (2n - 1), n&gt;0 Дублирование...

Двойной факториал
N!! = N*(N–2)*(N–4)*… (N &gt; 0 — параметр целого типа; последний сомножитель в произведении равен 2,...

Двойной факториал
Пусть n - натуральное число и пусть n!!означает 1*3*5*...*n для нечетного n и 2*4*....*n для...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.