n!=1*2*3*4*......n
代码如下:
#include<stdio.h>
#include<stdlib.h> //调用exit函数
int getfac(int num)
{
int fac;
if(num>12){ //int为整型,占4个字节,当n>12时,会溢出。
puts("溢出");
exit(-1); //结束程序
}
if(num == 1){
fac=1;
}else{
fac = getfac(num-1) * num;
}
return fac;
}
int main()
{
int fac,num;
puts("你想计算哪个数的阶乘");
scanf("%d",&num);
fac = getfac(num);
printf("%d!结果是%d\n",num,fac);
return 0;
}
由于int的字节限制,可以使用long long int,代码如下:
#include<stdio.h>
long long int getfac(int num)
{
long long int fac;
if(num == 1){
fac=1;
}else{
fac = getfac(num-1) * num;
}
return fac;
}
int main()
{
long long int fac;
int num;
puts("你想计算哪个数的阶乘");
scanf("%d",&num);
fac = getfac(num);
printf("%d!结果是%lld\n",num,fac);
return 0;
}