![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Помогите написать программу. Вывести первые А четных членов ряда Фибоначчи - 1,2,5,13,34,89..., до заданного числа N.
|
|
#2
|
|||
|
|||
|
Какую тему сейчас проходите - циклы или рекурсию?
|
|
#3
|
|||
|
|||
|
А там по умолчанию будет и то, и то т.к. числа фибоначи расчитываются обычно через рекурсию, а до числа N надо будет идти циклом while.
Кстати, ряд Фибоначи начинается с двух единиц, а не с одной. Код:
program fibs;
{$APPTYPE CONSOLE}
function Fib(N : Integer) : Integer;
begin
If N < 1 Then Raise Exception.Create('Номер числа не может быть < 1');
If N < 3
Then Result := 1
Else Result := Fib(N-1) + Fib(N-2);
end;
procedure PrintFib(AMaxFib : Integer);
var
N : Integer;
F : Integer;
begin
F := 0;
N := 1;
While F < AMaxFib Do
Begin
F := Fib(N);
WriteLn(Format('Fib(%d)=%d',[N,F]));
Inc(N);
End;
end;
var
MaxFib : Integer;
begin
Write('Введите макс. число Фибоначи:');
ReadLn(MaxFib);
WriteLn;
WriteLn('Ряд Фибоначи:');
PrintFib(MaxFib);
end. |