| 
| 
 | Вопрос # 1 019/ вопрос открыт / | 
 |  39.	Написать функцию вычисления n!.40.	Написать функцию вычисления n–ного числа Фибоначчи.
 
|  |   Вопрос задала: natasha (статус: Посетитель)Вопрос отправлен: 27 октября 2007, 11:59
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Dron Здравствуйте, natasha!Функцию вычисления факториала можно написать с использованием цикла, либо с использованием рекурсии. Рекурсию лучше не использовать, т.к. в этом случае расход памяти будет гораздо больше, причём чем больше будет аргумент, тем больше выделение памяти. Вот реализация функции с использованием цикла:
 
 function Factorial(N: Integer): LongInt;
var i: integer;
begin
  Result:=1;
  for i := 2 to N do
    Result:=Result*i;
end;
|  | Ответ отправил: Dron (статус: Студент)Время отправки: 27 октября 2007, 12:16
 
 |  Ответ #2. Отвечает эксперт: Николай Рубан Здравствуйте, natasha!
 Функция вычисления n!.
 function fact(n:integer):longint;
 var i:integer;
 begin
 Result:=1;
 if n>0 then
 for i:=2 to n do Result:=Result*i;
 end;
 
 
 Функция вычисления n–ного числа Фибоначчи.
 function Fibonachi(n:integer):integer;
 var f1,f2,i:integer;
 begin
 f1:=1; f2:=1;
 Result:=1;
 if n>2 then
 for i:=3 to n do
 begin
 Result:=f1+f2;
 f1:=f2;
 f2:=Result;
 end;
 end;
 
 
 Применение выше описанных функций:
 ShowMessage(format('Фактириал=%d',[fact(6)]));
 ShowMessage(format('Фибоначчи=%d',[Fibonachi(13)]));
 
 Good Luck!!!
 
|  | Ответ отправил: Николай Рубан (статус: 10-ый класс)Время отправки: 27 октября 2007, 15:01
 
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |