Предмет: Информатика, автор: jitili1653

Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n–1) + 2n–1 , если n > 1.
Чему равно значение функции F(10)?
В ответе запишите только натуральное число.
На python таким циклом не решается - выдаёт ошибку. Хэлп!
def F(n):
if (n == 1):
return F(1)
else:
if 1 < n:
return (F(n-1) + 2**(n-1))
print(F(10))


MrSolution: Пишите условие грамотно! Можно было бы поставить 2^(n–1), потому как это не одно и то же с 2n–1.
epic4245: def f(n):
if n==1:
return 1
if n>1:
return f(n-1) + 2*n-1
print(f(10))
epic4245: стоит обращать внимание на отступы, особенно в питоне! помимо этого **- это возведение в степень , а не умножение! также в условие написано, что функция выполняется при n>1 , но вы почему-то написали наоборот . У меня получилось 100

Ответы

Автор ответа: MrSolution
1

Ответ:

(см. объяснение)

Объяснение:

Данная задача решается быстро как программным методом, так и руками.

Приведу решение на языке PascalABC.NET:

##

function F(n: integer): integer;

begin

 if(n=1) then F:= 1

 else if(n>1) then F:= F(n-1)+Integer.Parse(power(2,n-1)+'');

end;

print(F(10));

Программа прекрасно работает, выводя на экран число 1023.

Задание выполнено!

Похожие вопросы
Предмет: Английский язык, автор: Сулейман111111
Предмет: Окружающий мир, автор: alena05fedorovyx
Предмет: Математика, автор: алдияр46