Мне нужно вывести 150 чисел Фибоначчи
Код:
var
a,b,c: integer;
begin
a:=1;
b:=1;
while a<2000000000 do
begin
c:=a+b;
a:=b;
b:=c;
memo1.text := memo1.text + Inttostr(b)+#13#10;
end;
После 46 цикла пошли минусы
Если делать так:
Код:
// Возвращает Nый элемент ряда фибоначи
function Fib(N : Integer) : Integer;
begin
If N < 3
Then Result := 1
Else Result := Fib(N-1) + Fib(N-2);
end;
.........
begin
for i := 1 to 20 do
label1.Caption := label1.Caption + Inttostr(fib(i))+', ';
программа виснет если больше 46 циклов.
Как исправить?