Мені потрібна функція, яка приймає n і повертає 2 n - 1 . Звучить це досить просто, але функція повинна бути рекурсивною. Поки що у мене всього 2 n :
def required_steps(n):
if n == 0:
return 1
return 2 * req_steps(n-1)
Вправа стверджує: "Ви можете припустити, що параметр n завжди є цілим числом і більше 0"
def fn(n): if n == 0: return 1; return (2 << n) - fn(0); # technically recursive
C:\MyFolder
1 << n
не можуть переповнюватися. Це здається вправою винайдення способу розкладання(1<<n) - 1
на кілька етапів, можливо, встановлення кожного біта за часом, як показують деякі відповіді.