尾递归

尾递归是指,在函数返回的时候,调用自身本身,并且,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)

你可能感兴趣的:(尾递归)