递归实际是反复调用自身的函数,每次调用会把问题范围缩小,直到缩小到直接得到边际数据结束。
这样看来递归有分治的思想在里面,分而治之。
递归需要把握一下两点:
1.递归边界
2.递归条件
下面来看经典例子:使用递归求n!
#include <cstdio>
#include <cstring>
#include <algorithm>
int Fi(int n){
if(n==0) return 1;
else return Fi(n-1)*n;
}
int main(){
int n;
scanf("%d",&n);
printf("%d\n",Fi(n));
return 0;
}