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
여러 단계 로 분해하는 방법을 발명하는 연습으로 보입니다 . 아마도 대답이 보여주는 것처럼 각 비트를 한 번에 하나씩 설정하는 것입니다.