Мне нужна функция, которая принимает n и возвращает 2 n - 1 . Это звучит достаточно просто, но функция должна быть рекурсивной. Пока у меня всего 2 н :
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
на несколько шагов, возможно, устанавливая каждый бит по одному, как показывают некоторые ответы.