Задать вопрос
25 ноября, 04:56

Определите кол-во чисел K, для которых программа выведет такой же результат, что и для K=20;

var i, k: integer;

function F (x:integer) : integer;

begin

if x < 3 then

F: = 1

else F: = F (x-1) + F (x-2);

end;

begin

i: = 21; readln (K);

while (i > 0) and (F (i) > K) do

i:=i-1;

writeln (i);

end.

+1
Ответы (1)
  1. 25 ноября, 08:53
    0
    Var

    k, fk, k20, count: integer;

    function F (x: integer) : integer;

    begin

    if x < 3 then

    F : = 1

    else F : = F (x - 1) + F (x - 2);

    end;

    begin

    k20:=F (20);

    writeln (k20);

    count:=-1; {k=20 мы ж вроде должны вычесть}

    for k : = 3 to 50 do begin

    fk:=F (k);

    if fk=k20 then count:=count+1;

    write (fk,' ');

    end;

    writeln (count);

    end.

    функция работает очень медленно потому что это рикурсия. Функция создает последовательность числ фибоначи которые вообщ то не повторяются потому что последовательность возрастающая. Повторения вообщем возможны изза того что integer это не безконечная последовательность, а кольцо, но дождаться результатов при таким образом построенной функции просто нереально
Знаешь ответ?
Не уверен в ответе?
Найди верный ответ на вопрос ✅ «Определите кол-во чисел K, для которых программа выведет такой же результат, что и для K=20; var i, k: integer; function F (x:integer) : ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы