Вот такая задчка. Я её замутил сам, не знаю, как-то не красиво, и хочу что бы мне вы подсказали самое рациональное решение
Так вот. Дана последовательность чисел Фибоначчи (1,1,2,3,5,8,13,21, .... )
Найти значение элемента по его номеру (например №6 - восемь)
Заранее благодарен. ;D
число Фиббоначи можно задать не только через сумму двух предыдущих членов, но и через формулу... к сожалению сейчас я её не вспомню
Это получается фрактал.
Вот тут у меня что-то написано... не знаю - оно, не оно... лучше не нашел
ФОРМУЛА Бинэ
1 1+sqrt(5) 1-sqrt(5)
Un=-------((-------------)n-(------------)n
sqrt(5) 2 2
(замучился это писать... хуже всего подбирать кол-во пробелов...
Я где-то в книге по С ++ видел прогу вычисления n-ного члена ряда Ф...Первые 3 елемента задаются вручную - остальные - с помощю рекурсии. Найду - допишу. Кстати, книга : Jessy Liberty "C++ за 21 день". Главное ведь - алгоритм ;)
AnKoR, сделай так:
{$N+}
var i, max: longint;
a: array[0..1] of extended;
begin
readln( max );
a[1]:= 1;
a[0]:= 1;
for i:= 1 to ( max - 2 ) do if odd( i ) then a[1]:= a[1] + a[0] else a[0]:= a[1] + a[0];
write( a[max mod 2] );
readln
end.
Сам не компилил, но идти должно...
uses crt;
var
n:array[1..100] of longint;
x,y:integer;
begin
clrscr;
writeln('введите номер');
readln(y);
n[1]:=0;
n[2]:=1;
for x:=3 to y do
begin
n[x]:=n[x-1]+n[x-2];
end;
writeln('число ',n[x]);
repeat until keypressed;
end.
(не компилировал)