Potrzebuję funkcji, która pobiera n i zwraca 2 n - 1 . Brzmi to dość prosto, ale funkcja musi być rekurencyjna. Do tej pory mam tylko 2 n :
def required_steps(n):
if n == 0:
return 1
return 2 * req_steps(n-1)
Ćwiczenie stwierdza: „Możesz założyć, że parametr n jest zawsze dodatnią liczbą całkowitą i jest większy od 0”
def fn(n): if n == 0: return 1; return (2 << n) - fn(0); # technically recursive
C:\MyFolder
1 << n
nie mogą się przepełnić. Wydaje się, że jest to ćwiczenie polegające na wynalezieniu sposobu rozpadu(1<<n) - 1
na wiele etapów, być może ustawienie każdego z bitów pojedynczo, jak pokazują niektóre odpowiedzi.