Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 019

/ вопрос открыт /

39. Написать функцию вычисления n!.
40. Написать функцию вычисления n–ного числа Фибоначчи.

natasha Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: 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


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:52
Выполнено за 0.02 сек.