尾递归

尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况

def fact(n):

        return fact_iter(n,1)

def fact_iter(num, product):

        if num ==1:

                return product

        return fact_iter(num -1, num * product)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 递归 使用递归函数需要注意防止栈溢出问题。在计算机中函数调用是通过栈(stack)这种数据结构实现的,每当进入一个...
    Cookie_hunter阅读 295评论 0 0
  • 尾递归 尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就...
    名C阅读 175评论 0 0
  • 前言 众所周知,递归函数容易爆栈,究其原因,便是函数调用前需要先将参数、运行状态压栈,而递归则会导致函数的多次无返...
    灼弦阅读 949评论 1 4
  • 就算没有跨越经纬度,我们之间都存在着时差。 朋友的我们,情侣的我们。 事情的发生,心情的起伏,你不在,或我不在。 ...
    茶西茶西阅读 233评论 0 0
  • 我坐在屋里看 屋外 是电灯的光 请别称它为 灯火 有火的灯 古代才有的 我想像 我盘腿坐着 桌上 是 灯火 屋...
    多佛儿阅读 273评论 0 0