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
複数のステップに分解する方法を発明するための練習のようです。おそらく、いくつかの回答が示すように、各ビットを一度に1つずつ設定します。