Ошибка при вызове функции: SyntaxError: can't assign to function call
Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
F(n) = F(n/2), если n > 0 и при этом n чётно;
F(n) = 1 + F(n – 1), если n нечётно.
Сколько существует таких чисел n, что 1 ≤ n ≤ 500 и F(n) = 8?
Выдаёт ошибку в строке F(n)=F(n-1)+1.
def F(n):
if n==0:
return 0
elif n>0 and n%2==0:
F(n)= F(n/2)
elif n%2!=0:
F(n)=F(n-1)+1
for n in range(1,500):
if F(n) == 8:
print('Ответ:', n)
break```
Ответы (2 шт):
Автор решения: ganz
→ Ссылка
ты пытаешься присвоить значение вызову функции то есть
print(22222222)=76
это теоретически можно сделать если функция вернёт переменную, к примеру список
def a():
return []
a().append('null')
Автор решения: CrazyElf
→ Ссылка
def F(n): # функция F(n)
...
F(n)= F(n/2) # вычисляется значение F(n)
Естественно, вы не можете присвоить значение вызову функции. Но вы можете вернуть тут значение из функции, ведь вы описываете функцию F(n) и в этой строке вычисляется её значение:
def F(n):
...
return F(n/2)
Со второй подобной строчкой - аналогично, делаете return значения.