Вопрос задан 27.10.2023 в 07:44. Предмет Информатика. Спрашивает Федощенко Ульяна.

Определите кол-во чисел 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.
0 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 это не безконечная последовательность, а кольцо, но дождаться результатов при таким образом построенной функции просто нереально

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Данная программа вычисляет значение функции F(x), которая определена рекурсивно. Функция F(x) возвращает 1, если x меньше 3, иначе она возвращает сумму F(x-1) и F(x-2).

В данной программе сначала объявляются переменные i и k типа integer. Затем определяется функция F(x), которая принимает целочисленный аргумент x и возвращает целочисленное значение. Внутри функции F(x) проверяется условие, если x меньше 3, то функция возвращает 1, иначе она рекурсивно вызывает себя для значений x-1 и x-2 и возвращает их сумму.

Затем в основной части программы переменной i присваивается значение 21. Затем считывается значение переменной K. Далее запускается цикл while, который будет выполняться до тех пор, пока i больше 0 и значение функции F(i) больше K. Внутри цикла i уменьшается на 1. После завершения цикла выводится значение переменной i.

Таким образом, программа будет выводить такое же значение, как и для K=20, для всех чисел i от 21 до первого значения i, при котором F(i) будет меньше или равно K. Количество таких чисел K будет равно разнице между 21 и первым таким значением i.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос