Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 21:02   #11
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

вот это должно помочь на 90%
Код:
{ 

The factorial of a positive integer is defined as: 

 

n! = n*(n-1)*(n-2)*(n-3)*...*2*1 

1! = 1 

0! = 1 

 

Example: 5! = 5*4*3*2*1 

} 

 

// Iterative Solution: 

 

function FacIterative(n: Word): Longint; 

var 

f: LongInt; 

i: Integer; 

begin 

f := 1; 

for i := 2 to n do f := f * i; 

Result := f; 

end; 

 

 

// Recursive Solution: 

 

function FacRecursive(n: Word): LongInt; 

begin 

if n > 1 then 

   Result := n * FacRecursive(n-1) 

else 

   Result := 1; 

end;
kakawkin вне форума Ответить с цитированием
Старый 01.10.2009, 23:23   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

kakawkin, Вы не разобрались в сути проблемы!
Дело в том, что разрядности LongInt не хватает, чтобы посчитать число 17! (банальное переполнение разрядной сетки происходит). Вот об этом народ и толкует... а Вы тут классические алгоритмы нам приводите...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.10.2009, 23:34   #13
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

вот ещё что придумал:
Код:
program facttest;

var
    n: byte;

function factorial(n: byte): real;
begin
    if (n = 0) then
        factorial := 1
    else
        factorial := n * factorial(n - 1);
end;

begin
    for n := 0 to 17 do
    begin
        writeln(n, '! = ', factorial(n));
    end;
end.
kakawkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление факториала (Pascal) DsDevis Помощь студентам 8 09.12.2010 18:56
(паскаль) Обработка кв. матрицы. Программа есть. Не корректно работает функция SUM.. aslanbek999 Помощь студентам 3 02.06.2009 19:51
функция вычисления сред.арифм и сред.геометр Demigoddess Общие вопросы C/C++ 2 15.05.2009 20:24
Паскаль,функция и множество pavlentus Помощь студентам 4 20.04.2009 20:39
Си, вычисление факториала ManInBlack Помощь студентам 2 07.03.2009 00:50