СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости




Задания
Версия для печати и копирования в MS Word
Задание 11 № 9692

Ниже на четырёх языках программирования записан рекурсивный алгоритм F.

 

БейсикПаскаль

SUB F(n)

  IF n > 0 THEN

    F(n - 4)

    F(n \ 3)

    PRINT n

  END IF

END SUB

procedure F(n: integer);

begin

  if n > 0 then

  begin

    F(n - 4);

    F(n div 3);

    writeln(n)

  end

end;

Си++Алгоритмический язык

void F(int n)

{

if (n > 0)

  {

    F(n - 4);

    F(n / 3);

    cout << n << endl;

  }

}

алг F(цел n)

нач

  если n > 0 то

    F(n - 4)

    F(div(n, 3))

    вывод n, нс

  все

кон

 

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(10)?

Решение.

Промоделируем работу алгоритма, не выписывая F с аргументом меньше нуля.

F(10)

   F(6)

      F(2)

      F(2)

   F(3)

      F(1)

 

Сложим все числа, получим 24.

 

Примечание. Отрицательные значения функции ничего не выведут на экран, так как не будет выполнено условие if n > 0.

 

Ответ: 24.