РУҚА
16

Решение: Рекурсивное вычисление функции

ЕГЭ · Информатика · Задание 16 · Динамическое программирование
ПовышеннаяФИПИ8C4B9DКороткий ответ≈ 3 минутыРазбор в 4 шагаОтвет сверен с ключом
Условие

Алгоритм вычисления значения функции $F(n)$, где $n$ — целое неотрицательное число, задан следующими соотношениями: $F(n)=0$ при $n\leq 1$; $F(n)=2\cdot F(n-1)+2$, если $n>1$ и $n$ нечётно; $F(n)=n/2+F(n-1)$, если $n>1$ и $n$ чётно. Чему равно значение функции $F(28)$?

При вычислении значения $F(n)$ используется операция целочисленного деления.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

Начальные значения: $F(0)=F(1)=0$. Последовательно применяем рекуррентные формулы.

$$F(2)=1$$
2

Для нечётных аргументов значение удваивается и увеличивается на 2, для чётных прибавляется половина аргумента. После последовательного вычисления получаем:

$$F(24)=12272,\quad F(25)=2\cdot12272+2=24546$$
3

Вычисляем следующие значения:

$$F(26)=13+24546=24559,\quad F(27)=2\cdot24559+2=49120$$

Число $28$ чётное, поэтому:

$$F(28)=\frac{28}{2}+F(27)=14+49120=49134$$
Ответ
49134
49134
так ответ выглядит в бланке

Где здесь ошибаются

Использование формулы для нечётного числа при вычислении $F(28)$.

Забывают прибавить $n/2$ при чётном значении $n$.

Начинают рекурсию с неверного базового значения вместо $F(0)=F(1)=0$.

Закрепить приёмВ теме «Динамическое программирование» ещё 71 задача — с ответом и таким же разбором.
Тренироваться

Как решать задание 16 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Динамическое программирование»: в ней 72 задачи, и у каждой есть такой же разбор. Регистрация не нужна.