python中递归的使用

来源:互联网 发布:软件培训ppt模板 编辑:程序博客网 时间:2024/06/07 00:00

python中递归函数的使用:

def division(n):    print(n)    if n/2==0:        return n#递归特性一:必须有一个明确的结束条件    return division(n/2)#递归特性而:每次递归都是为了让问题规模变小division(10)#递归特性三:递归层次过多会导致栈溢出,且效率不高
这种方式运行python文件会报:RecursionError: maximum recursion depth exceeded while calling a Python object错误
原因是有小数的存在,有科学技术法的出现会导致递归一直进行,所以需要将n/2转换为int类型
如下:
def division(n):    print(n)    if int(n/2)==0:        return n#递归特性一:必须有一个明确的结束条件    return division(int(n/2))#递归特性而:每次递归都是为了让问题规模变小division(10)#递归特性三:递归层次过多会导致栈溢出,且效率不高

运行结果如下:
10521
递归有三大特性,我已经在代码注释中标出!

原创粉丝点击