第1个回答 2013-06-10
#include<stdio.h>
#include<math.h>
double fac(int n)
{
if(n==1)return 1;
else return fac(n-1)*n;
}int main()
{
int n;
scanf("%d",&n);
printf("%d!=%.0lf\n",n,fac(n));
//因为20!已经超出了int的最大值,故用double型,输出的时候输出整数位
return 0;
}
第2个回答 2013-06-10
#include "stdio.h"
/*这是求解函数,返回一个数的阶乘*/long fac(long i){ if(i < 2) return 1; else return i*fac(i-1);}
void main(){ long num; scanf("%ld",&num); /*由用户控制输入*/ printf("fac(%ld):%ld\n",num,fac(num));}