Создать сайт на a5.ru
Более 400 шаблонов
Простой редактор
Приступить к созданию

Подготовка к государственной итоговой аттестации по информатике

Задание 16. (ДЕМО-2023)

Алгоритм  вычисления  значения  функции  F(n),  где  n  –  натуральное  число, 
задан следующими соотношениями: 
F(n) = 1 при n = 1;  
F(n) = n × F(n − 1), если n > 1.
Чему равно значение выражения F(2023) / F(2020)?

Решение

function F( n: integer ): biginteger;
begin
  if n =1 then   Result := 1
       else  Result := n*F(n-1);
end;
begin
  print (F(2023)/F(2020));
end.

 

Ответ: 8266912626 

 

ПРИМЕРЫ:

1. Алгоритм вычисления функции F(n) задан следующими соотношениями:  

           F(n) = 2n при n <=5 

           F(n) = F(n–2) + 3×F(n/2) + n, если n >5 и  чётно,   

          F(n) = F(n–1) + F(n–2) + F(n–3), если n > 5 и нечётно.

Чему равно значение функции F(99) + F(100)?

 

   function F( n: integer ): integer;

   begin  

         if <=5 then    Result := 2*n  

                  else if n mod 2=0 then   

                              Result := F(n-2)+3*F(n div 2)+n    

                               else Result := F(n-1)+ F(n-2)+F(n-3);

        end;

   begin  

     print (F(99)+F(100));

   end.

 

Ответ: 142139494

 

2.  Определите, сколько символов * выведет эта процедура при вызове F(22):

procedure F( n: integer );

begin  

      write('*');  

      if n >= 1 then begin   

                   write('*'); 

                   F(n-1);    F(n-2);    F(n-3);  

      end;

end;

 

Ответ: 1957585

 

3. Алгоритм вычисления значения функции F(n), где n  — целое неотрицательное число, задан следующими соотношениями:      F(0) = 0;

     F(n) = F(n / 2), если n > 0 и при этом чётно;

     F(n) = 1 + F(n − 1), если n нечётно.

Сколько существует таких чисел n, что 1 ≤ n ≤ 1000 и F(n)  =  3?

 

var n: longint;

      i, k: integer;

function F(n: longint): longint;  

begin   

      if n = 0  then F := 0  

      else if (((n mod 2) = 0) and (n >0))    then F := F(n div 2)   

             else F := 1 + F(n - 1);  

       end;

begin 

     k := 0; 

     for i := 1 to 1000 do     

      if F(i) = 3 then k := k + 1;  

     writeln(k);

end.

 

Ответ: 120

 

4.Определите наименьшее значение n, при котором сумма чисел, которые будут выведены при вызове F(n), будет больше 5000000. Запишите в ответе сначала найденное значение n, а затем через пробел – соответствующую сумму выведенных чисел.

 

procedure F(n: integer);

begin

    writeln(2*n+1);

    if n >1 then begin

              writeln(3*n-8);

              F(n-1);

             F(n-4);

            end;

end;

 

Ответ: 40791973

 

 

 

 

 

Авторизуйтесь, чтобы оставить свой комментарий:

Комментариев:

Справочная информация

 

Рекурсия на Pascal:

 

function F( n: integer ): integer;

begin  

      if n ….  then     F := …  

            else   F := …..;

end;

 

© Бондарь М.Н., 2023 г.
rezervbmn@mail.ru
Все права защищены.