一般来说,递归需要有边界条件,递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
递归的特点:递归就是在过程或函数里调用自身。
在使用递归策略的时候,必须有一个明确地递归结束的条件,称为递归出口
递归算法阶梯时通常显得很简洁,但是递归算法解题的运行效率较低
在递归调用过程中,系统为每层的返回点、局部变量等开辟了栈来存储,递归次数过多容易造成栈的溢出。(不同的系统在开栈的时候都有一个明确的默认值。)
计算阶乘n!
#include <iostream>
using namespace std;
int f(int n)
{
return n==0?1:f(n-1)*n;
}
int main()
{
int n;
cin>>n;
cout<<f(n)<<endl;
}