ฉันต้องการฟังก์ชั่นที่ใช้เวลา 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
เป็นหลายขั้นตอนบางทีอาจจะตั้งค่าทีละบิตทีละคำตอบ