概述
递归算法指的是包含递归过程的算法。递归方法指的是一种在有限步骤内根据特定的法则或者是公式对一个或者是多个元素进行运算,以确定一系列元素(如数或者函数)的方法。
1)有反复执行的过程(调用自身)
2)有跳出反复执行过程的条件(递归出口)
举例说明
(1)阶乘
n! = n * (n-1) * (n-2) * ...* 1(n>0)
//阶乘
int recursive(int i)
{
int sum = 0;
if (0 == i)
return (1);
else
sum = i * recursive(i-1);
return sum;
}
(2)河内塔问题
//河内塔
void hanoi(int n,int p1,int p2,int p3)
{
if(1==n)
cout<<"盘子从"<<p1<<"移到"<<p3<<endl;
else
{
hanoi(n-1,p1,p3,p2);
cout<<"盘子从"<<p1<<"移到"<<p3<<endl;
hanoi(n-1,p2,p1,p3);
}
}