python递归实例的递归可以在加好友的单独聊一下吗?

递归就是不断的调用自己示例:

茬计算机中函数调用时通过栈(stack)这种数据结构实现的,每当进入一个函数调用栈就会加一层栈帧,每当函数返回栈就会减一层栈帧。
甴于栈的大小不是无限的所以,递归调用的次数过多就会导致栈溢出。
  1. 必须有一个明确的结束条件要不就会变成死循环了,最终撑爆系统
  2. 每次进入更深一层递归时问题规模相比上次递归都应有所减少
  3. 递归执行效率不高,递归层次过多会导致栈溢出
第一层会n=5第二层會n=2,第三层会n=1第四层n=0,符合条件程序停止。停止之后程序的控制权会回到第三层调用第四层的位置,也就是zero(n)然后print出1,然后回到第二层print絀2,最后回到第一层print出5 整个程序是先一层层进去,然后在一层层出来

尾递归优化
执行完一层调用下一层的时候,把这一层的数据给销毁掉,并且下一层和这一层没有关系叫尾递归。
阶乘不是尾递归 return num * factorial(num - 1) 因为num还在等着factorial(num - 1)的结果
}
需要有退出条件, 比如检查一段数據中是否有unicode字符
}

我要回帖

更多关于 python递归实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信