Ben n alır ve 2 n - 1 döndüren bir işleve ihtiyacım var . Kulağa yeterince basit geliyor, ancak işlev özyinelemeli olmalıdır. Şimdiye kadar sadece 2 n var :
def required_steps(n):
if n == 0:
return 1
return 2 * req_steps(n-1)
Alıştırma şunları söylüyor: "n parametresinin her zaman pozitif bir tam sayı ve 0'dan büyük olduğunu varsayabilirsiniz"
def fn(n): if n == 0: return 1; return (2 << n) - fn(0); # technically recursive
C:\MyFolder
1 << n
taşamaz. Bu(1<<n) - 1
, birden fazla adımda ayrışmanın bir yolunu icat etme alıştırması gibi görünüyor , belki de her biti bir kerede bazı cevapların gösterdiği gibi ayarlıyor.