Задать вопрос
23 декабря, 01:26

Определите кол-во чисел 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.

+4
Ответы (1)
  1. 23 декабря, 05:04
    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) : ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы