码迷,mamicode.com
首页 > 其他好文 > 详细

递归函数

时间:2019-11-05 15:21:18      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:注意   返回   一个   pre   汉诺塔   栈溢出   语句   iter   就是   

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

fact(3)

使用递归函数需要注意防止栈溢出
解决递归调用栈溢出的方法是通过尾递归优化
尾递归是指,在函数返回的时候,调用自身本身,并且,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)

汉诺塔问题
不太懂

递归函数

标签:注意   返回   一个   pre   汉诺塔   栈溢出   语句   iter   就是   

原文地址:https://www.cnblogs.com/g2thend/p/11798344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!