我需要一个接受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
@Voo:不是Carl,但是请列出我所包含的所有内容
—
Flater
C:\MyFolder
@Voo:依赖与否与纯粹侧重于讲授递归概念的练习无关。我可以制作一套可供学生使用的基本模拟类/方法。您正在专注于完全超出练习重点的事情。使用文件系统导航是一个很好的例子,因为学生通常了解文件夹和文件的固有重复性质(即文件夹可以无限地嵌套在彼此之间)
—
Flater
@Voo不,我是说您可以通过显示递归数据结构来教授递归。我不知道你为什么要努力抓住这一点。
—
平坦:
1 << n
不会溢出。这似乎是在尝试发明一种分解(1<<n) - 1
为多个步骤的方法,这可以像某些答案所示那样一次将每个位设置为一个。