Определите, количество чисел K, для которых следующая программа выведет такой же...

0 голосов
76 просмотров

Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K = 45:

var i, k: integer;

function F(x:integer):integer;

begin

if x < 2 then

F:= 1

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

end;

begin

i := 0;

readln(K);

while F(i) < K do

i:=i+1;

writeln(i);

end.
Помогите решить, пожалуйста. нужно расписать


Информатика (14 баллов) | 76 просмотров
Дан 1 ответ
0 голосов

Посмотри как функция строится
F(0)=1, F(1)=1, F(2)=3, F(3)=7, F(4)=17, F(5)=41, F(6)=99
То есть последующий элемент равен сумме удвоенного предыдущего и препредыдущего.
Код возвращает порядковый номер элемента, котрый больше данного K
Больше 45 будет шестой элемент, который равен 99.
Он также будет больше 42,43 и т.д.
Всего их 99-41=58  Если требуется исключить 45, то остается 57
Поясню, что 99 нам не подходит, а 41 подходит.
Ответ:57

(356 баллов)