递归函数和普通函数调用一样是通过栈实现的
栈是内存空间,内存空间会一层一层叠加,放着函数调用的形参,返回地址,局部变量
#include<iostream>
using namespace std;
int fun(int n)
{
if (n==1)//n等于1时则计算结束
{
return 1;
}
return n * fun(n - 1);//再次调用
}
int main()
{
int n;
cin >> n;
cout << fun(n);//输出n的阶乘
return 0;
}
递归的作用
代替多重循环,解决本来就是用递归形式定义的问题,将问题分解为规模更小的子问题进行求解