递归(直接或间接调用自身函数--自己调用自己):
1、流程:先执行main函数,再执行调用的函数(调用的函数结束后再执行main函数)
返回值 函数名(形参)
{
......
函数名(实参)
......
}
2、调用函数会进系统调用函数的栈空间(栈:先进后出 像一口井--先放桶的在下面,后放的在上面,上面的桶走了,下面的才能拿出来)
注:1、什么时候结束 2、什么时候开始 3、每一次递归你需要干什么、、、、
习题:
1、求5的阶层:
f(1)=1;f(2)=2*1=2*f(1) ,f(3)=3*2*1=3*f(2).... 总结:f(i)=i*f(i-1)
2、求n的阶层
s(1)=1=f(1),s(2)=f(1)+f(2)=s1+f(2),s(3)=f(1)+f(2)+f(3)=s(2)+f(3) 总结:s(n)=s(n-1)+f(n)
图中fun2为n的阶层和 fun1为求5的阶层