#include<stdio.h>
int main(){
int fac(int n);
int n,f;
scanf("%d",&n);
f=fac(n);
printf("n!=%d",f);
return 0;
}
int fac(int n){
int f;
if(n<0)
printf("n<0,data error");
else if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return f;
}
注:程序中变量是int型,如果是用visual C++、GCC以及大多数C编译系统为Int型分配4个字节,能表示的最大数是2147483647,当运行n=12时,正常运行,如果是n=13,求13!,是得不到预期结果的,因为求出的结果已经超出了Int型的最大值,可将f,fac函数定义为float或double型。