11249. Рекурсия – 2

 

Заданы числа a, b, c. Для заданного числа n вычислите значение функции:

Вход. Четыре целых числа a, b, c (|a|, |b|, |c| ≤ 1000), n (0 n 1000).

 

Выход. Выведите значение f(n).

 

Пример входа

Пример выхода

4 2 -3 10

84

 

 

РЕШЕНИЕ

рекурсия

 

Анализ алгоритма

Для решения задачи следует реализовать заданную рекурсивную функцию.

 

Реализация алгоритма

Функция f реализует приведенную в условии задачи рекурсивную функцию.

 

long long f(long long n)

{

  if (n == 0) return a;

  return f(n - 1) + b * n + c;

}

 

Основная часть программы. Читаем входные данные.

 

scanf("%lld %lld %lld %lld", &a, &b, &c, &n);

 

Вычисляем и выводим ответ.

 

res = f(n);

printf("%lld\n", res);

 

Python реализация

Функция f реализует приведенную в условии задачи рекурсивную функцию.

 

def f(n):

  if n == 0: return a

  return f(n - 1) + b * n + c

 

Основная часть программы. Читаем входные данные.

 

a, b, c, n = map(int,input().split())

 

Вычисляем и выводим ответ.

 

res = f(n)

print(res)