1.整个过程
若是求4的阶乘,那么是1*2*3*4,也是4*3的阶乘,也是4*6*2的阶乘,也是4*3*2*1的阶乘,所以该函数Fac(n)可以分为两部分,一部分是n<=1,即1的阶乘,那么返回值为1;另一部分是n>1,返回n*(n-1)的阶乘,即再次调用函数Fac(n-1),实现函数的递归。n>1为限制条件,n-1为无限逼近条件。
2.实现程序
#include<stdio.h>
int Fac(n)
{
int a = 1;
if (n > 1)
{
return n * Fac(n - 1);
}
else
return 1;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = Fac(n);
printf("%d\n", ret);
system("pause");
return 0;
}