在这里我给大家推荐一款不错刷算法学习网站:点击这处链接牛客网;牛客网作为国内内容超级丰富的 IT 题库,各种东西看的我眼花缭乱,题库+面试+学习+求职+讨论+大厂内推等等服务,堪称
"互联网求职神器"
。它好就好在不只是一个刷题的平台,还是一个交流学习的平台,发个问题贴总有热心的大佬帮助。
什么是递归?
递归就是函数自己调用自己!
所谓递归,就是要有递有归!只递不归,会导致程序崩溃!
要在适当的时候终止递归(为了避免崩溃,递归函数一定要包含条件语句)
举例:
#定义一个递归函数
def f(x): //当x=3,调用函数
return x + f(x-1);
返回3 + f(2) , f(2)又返回2 + f(1) , f(1)又返回1 + f(0)…当无限调用函数,需要占用一片叫做栈的内存空间,将一些数据存储到栈中,运行结束,数据从栈中取出来,然而只调用不返回,栈会塞满,从而栈溢出。程序终止!
#定义一个递归函数
def f(x): //x=3
if x > 0:
return x + f(x-1);
else:
return 0;
结果:6
#定义一个递归函数
def f(x): //x=100
if x > 0:
return x + f(x-1);
else:
return 0;
1+2+3+4+…+100=5050
什么是函数嵌套调用与递归?
从一个函数调用另一个函数称为函数的嵌套调用
还有一种情况:
在一个函数体内调用自身称为函数的递归调用