代码如下所示:
#include<stdio.h> main() { long fac(int n);//递归函数的声明 int n; long y;//定于整形可能会出现溢出现象 printf("请输入要求阶乘的数:"); scanf_s("%d", &n); y = fac(n);//调用递归函数 printf("%ld", y); } long fac(int n) { long f; if (n== 1 || n == 0)//0或者1的阶乘都是1 f = 1; else f =n* fac(n-1);//等价于n*n-1*n-2..... return f; }
输出结果如下: