递归函数的介绍及使用案例
递归函数
含义介绍:
递归函数,实际上就是将一个自定义的函数在运行过程中反复调用他自己,直到遇到结束条件就停止
案例一:求阶乘
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);
}