Задание №16 ЕГЭ Информатика с ответом и решением
Ответ: 465
Условие
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:
F(1) = 1;
F(n) = F(n − 1) + n, если n > 1.
Чему равно значение функции F(30)? В ответе запишите только натуральное число.
Подсказки — как подойти к решению
- Посмотри на структуру формулы: на каждом шаге к накопленному результату прибавляется само n, поэтому вся цепочка сводится к сумме натуральных чисел от единицы до нужного n. Проверь вывод на маленьких значениях.
- Не путай сумму n·(n + 1)/2 с произведением n·(n + 1) и с квадратом n. Аккуратно подставь нужное n в формулу суммы арифметической прогрессии и пересчитай первые слагаемые вручную.
Решение
Преобразуем выражение для F(n):
F(n) = F(n – 1) + n = F(n – 2) + (n – 1) + n = F(1) + 2 + ... + (n – 1) + n.
Это выражение для суммы арифметической прогрессии с первым членом 1 и разностью 1. Таким образом, F левая круглая скобка n правая круглая скобка = дробь: числитель: n левая круглая скобка n плюс 1 правая круглая скобка , знаменатель: 2 конец дроби . Откуда F левая круглая скобка 30 правая круглая скобка = дробь: числитель: 30 левая круглая скобка 30 плюс 1 правая круглая скобка , знаменатель: 2 конец дроби =465.
Ответ: 465.
Приведём другое решение на языке Python.
def F(n):
if n == 1:
return 1
if n > 1:
return F(n - 1) + n
print(F(30))
Типичные ошибки
- Похоже, ты не разделил на два: сумма 1 + 2 + … + n равна n·(n + 1)/2, поэтому результат получился ровно вдвое больше верного. Проверь формулу на маленьком значении n.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №16 по информатике