递归函数

含义介绍:

递归函数,实际上就是将一个自定义的函数在运行过程中反复调用他自己,直到遇到结束条件就停止

案例一:求阶乘

int len(int n)
{
    if(n == 1)
    {
		return 1;//如果阶乘运算到最后一位(即1),就结束循环
    }
    int sum = n*len(n-1);//n! = (n-1)!*n
    return sum;
}
void test01()
{
    cout<<len(5)<<endl;
}

案例二:求斐波那契数列的第n个数

int num(int n)
{
    if(n ==1||n ==0)//倒序运算到1或0时,就return n;结束循环
    {
		return n;
    }
    else
    {
        return num(n-1)+num(n-2);//n>=2时有这个式子
    }
}
void test01()
{
    int k;
    cin>>k;
    cout<<num(k)<<endl;
}

案例三:全排列

int s[5] = {0,1,2,3,4};//输入数组
int rev(int n)
{
    if (n == 5)
    {
        for (int i = 0; i < 5; i++)
        {
            cout << s[i];
        }
        cout << endl;
    }
    for (int i = n; i < 5; i++)
    {
        swap(s[i], s[n]);//首先确定第一个数
        rev(n + 1);//依次确定第2,3......个数
        swap(s[i], s[n]);//将换了位置的数据复原,以免下次交换数据时产生重复
    }
    return 0;
}
void test01()
{
    rev(0);
}