Задача 4 урок 20

Задача 4 урок 20

Пользователь получает на вход целое положительное число N напишите рекурсивную процедуру, которая выведет все числа Фиббоначи от первого до N-ого

var i1, i2, z, n: integer;
procedure Fibbonschi(i1, i2, n: integer; var z: integer);
begin
    write(i1,' ');
    inc(z);
    if (z < n) then
        Fibbonschi(i2, i2 + i1, n, z);
end;

begin
    z:=0;
    writeln('Vvedite n');
    readln(n);
    Fibbonschi(0, 1, n, z);
    readln();
end.
vedro-compota's picture

1)

var z: integer

-- передача по ссылке лишняя, т.к. нет нужды изменять значение снаружи от процедуры.

2) избавить от аргумента 3. Попробовать решить с тремя агруменатами

_____________
матфак вгу и остальная классика =)

var i1, i2, n: integer;
procedure Fibbonschi(i1, i2, n: integer);
begin
    write(i1,' ');
    n := n-1;
    if (n > 0) then
        Fibbonschi(i2, i2 + i1, n);
end;

begin
    writeln('Vvedite n');
    readln(n);
    Fibbonschi(0, 1, n);
    readln();
end. 
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

попробовать использовать решение http://fkn.ktu10.com/?q=node/13493 для функции с одним аргументом (может получится сократить число аргументов в этой задаче)

_____________
матфак вгу и остальная классика =)