之前汉诺塔的问题用递归一直解决不了,今天偶然碰到了一个讲解比较好的视频,就把里面递归讲解的内容整理下来,方便理解。
yeah!
为什么递归需要控制终止条件呢?我们先来看看不控制终止条件的递归函数。
void recursion() //这是个用来举例的函数
{
recursion();
}
运行过程:
具有控制条件的递归函数
int i = 0;
void recursion() //这是个用来举例的函数
{
if(i < 3)
{
i ++;
recursion();
}
}
运行过程:
我们再来看看两层递归函数
int i = 0;
void recursion()
{
if(i < 2)
{
i ++;
recursion();
recursion();
}
}