2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Помогите с фибоначи
Сообщение24.06.2010, 12:49 


24/06/10
2
Помогите решить пожалуйста

Описать нерекурентную функцию Fib(N) целого типа, вычисляющую N-е число Фибоначчи F(N) по формуле: F(1)=F(2), F(K)=F(K-2)+F(K-1), K=3,4,.... С помощью этой функциивычислить 10 чисел Фибонначи с указанными номерами.

Вот наработа

program fib;
Const N=5;
var i, kol :integer;

Function Fib(n:integer):integer;
begin
if (n=1) or (n=2) then Fib:=1
else begin
Fib :=Fib(n-1) + Fib(n-2);

end;
kol:=kol+1;
end;

BEGIN

for i:= 1 to N do begin
kol :=0;
read(i);
Write(i, ' chislo Fibonachi ' , Fib(i));
writeln(' Kolichestvovo vizovov' , kol);
end;
END.

 Профиль  
                  
 
 Re: Помогите с фибоначи
Сообщение24.06.2010, 13:12 
Админ форума
Аватара пользователя


19/03/10
8952
У Вас же в условии сказано
stasleiba в сообщении #334511 писал(а):
Описать нерекурентную функцию
Другими словами, надо разработать итерационный алгоритм вычисления числа Фибоначчи.

 i  Дубли темы удалены

Для оформления кода программы пользуйтесь тегом syntax: topic26708.html

 Профиль  
                  
 
 Re: Помогите с фибоначи
Сообщение24.06.2010, 13:58 


21/06/10
3
Используй формулу Бине
$f(n)=\frac {\left (\frac {1+\sqrt 5}{2}\right )^n-\left (\frac {1-\sqrt 5}{2}\right )^n}{\sqrt 5}$.

 Профиль  
                  
 
 Re: Помогите с фибоначи
Сообщение24.06.2010, 15:08 


30/12/09
95
Цикл, где на кажом шаге используются значения, сохраненные с предыдущих шагов.

 Профиль  
                  
 
 Re: Помогите с фибоначи
Сообщение27.06.2010, 08:58 


27/06/10
6
function Fib(N: integer): integer;
label ToEnd;
var f1,f2,f3, i, res: integer;
begin
if n=1 then
begin
res:=0;
goto ToEnd;
end;
if n=2 then
begin
res:=1;
goto ToEnd;
end;
f1:=0;
f2:=1;
for i:=2 to n do
begin
res:=f1+f2;
f1:=f2;
f2:=res;
end;
ToEnd:
fib:=res;
end;

 Профиль  
                  
 
 Re: Помогите с фибоначи
Сообщение27.06.2010, 10:45 
Админ форума
Аватара пользователя


19/03/10
8952
 !  coolmarat, предупреждение за размещения решения простой учебной задачи.

Читайте Правила форума

 Профиль  
                  
 
 Re: Помогите с фибоначи
Сообщение27.06.2010, 15:06 
Заслуженный участник


11/05/08
32166
coolmarat в сообщении #335516 писал(а):
if n=1 then
begin
res:=0;
goto ToEnd;
end;
if n=2 then
begin
res:=1;
goto ToEnd;
end;

Это неграмотно. Надо так:

Используется синтаксис Pascal
if (n=1) or (n=2) then begin
    fib:=1;    exit;    end;

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group