unsupported operand type(s) for +: 'int' and 'NoneType'
def f(n):
if n <= 1:
return 1;
elif n % 2:
n + f(n - 2)
else:
n * f(n - 1)
print(f(84))
В какой-то определенный момент функция решает возвращать NoneType, только я не понимаю почему. В чем проблема?
Ответы (1 шт):
Автор решения: Georgiy
→ Ссылка
Потому что код только при одном условии возвращает значение (это при условии n<=1), а в остальных случаях возвращает None. return поможет исправить ошибку.
def f(n):
if n <= 1:
return 1
elif n % 2:
return n + f(n - 2)
else:
return n * f(n - 1)
print(f(84))
>> 148176