递归必须满足两个条件:1.初始条件;2.递归函数.举个例子,求阶乘:有f(1)=1;f(n)=n*f(n-1)(n≥2)现在你可以实现如下:long func(int n)//定义函数 { long f,s=0; if(n==1)f=1; else { f=func(n-1)*n; //这里就是一个递归的过程,自身调用自身 s=s+f; } return s; } 假设你现在是求3!执行过程就是:f(3)=f(2)*3;然后调用自身:f(2)=f(1)*2;在调用遇到初始条件:f(1)=1;则f(3)=1*2*3=6
long fact(long n){//求阶乘的例子 if(n==1)return 1;//n=1时,1!=1 else return n*fact(n-1);//其他返回n*fact(n-1)}main(){ printf("6!=%ld\n",fact(6));}