您的位置:首页 > 其它

递归调用总结

2017-06-02 15:18 176 查看
1.递归算法是一种直接或者间接调用自身的算法。
2.递归过程一般通过函数或子过程来实现,是把问题转化为规模缩小了的同类问题的子问题,在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
3.递归调用的过程当中系统为每一层的返回点,局部量等开辟了栈来存储。
递归过程过多容易造成栈溢出。
 
递归的要求时用在规模上有所减小;第二是相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输出);第三是在递归调用过程都是有条件的。
 
例如一个汉诺塔问题:
直接上代码:
Void han(int n,char one,char two,char three)
{

If(n==1)

Printf("%c->%c\n",one,three);

Else

{

han(n-1,one,three,two);

Printf("%c->%c\n",one,three);

han(n-1,two,one,three);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递归函数