一个函数在内部调用自己本身,那么这个函数就是递归函数。

>>> def test(n):
...   print(n/2)
...   if int(n/2) > 0:
...     return test(n/2)
...
>>> test(10)
5.0
2.5
1.25
0.625

递归特性:

1.必须有一个明确的结束条件(死循环会递归到最大递归次数999次结束);

2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少;

3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减少一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

优质内容筛选与推荐>>
1、python学习
2、外网、局域网访问你的本地或服务器站点
3、互联网应用和企业级项目的区别
4、Jmeter阶梯式压测
5、hdu 4009 Transfer water(最小树形图生成森林)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号