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)#递归特性三:递归层次过多会导致栈溢出,且效率不高
运行结果如下:
10 5 2 1
递归有三大特性,我已经在代码注释中标出!