蓝桥杯
前言
递归算法是一种从自顶向下的算法,实际上是通过不停的直接调用或者间接的调用自身的函数,通过每次改变变量完成多个过程的重复计算,直到到达边界之后,结束调用。
一、递归算法
一个函数调用其自身就是递归。
二、实例
可以得到递归关系与递归出口
int fact(int n)
{
if(n==1)
return 1;
else
return n*fact(n-1);
}
int main()
{
int a;
cin>>a;
cout<<fact(a)<<endl;
return 0;
}
void convert(int x)
{
if((x/2)!=0)
{
convert(x/2);
cout<<x%2;
}
else
cout<<x;
}
int main()
{
int n;
cin>>n;
convert(n);
return 0;
}
总结
递归算法的思想:
1、将复杂计算过程转换为简单重复子过程;
2、找到递归公式,即能够将大问题转化为小问题的公式;
3、自上而下计算,在返回完成递归过程。
递归算法设计的一般步骤:
根据题目设计递归函数中的运算部分;
1、根据题目找到递归公式,题目可能会隐含给出,也可能需要自己进行推导;
2、找到递归出口,即递归的终止条件。
评论(0)
您还未登录,请登录后发表或查看评论