100! = 9.3326215443944 * 10
#include<stdio.h>
int
f[5000];
void
main()
{
int
i,j,n;
scanf("%d",&n);
for(i=0;i<5000;i++)
f[i]=0;
f[0]=1;
for(i=2;i<=n;i++)
{
int
c=0;//进位
for(j=0;j<5000;j++)
{
int
s=f[j]*i+c;
f[j]=s%10;
c=s/10;
}
}
for(j=4999;j>=0;j--)
if(f[j])
break;
for(i=j;i>=0;i--)
printf("%d",f[i]);
printf("\n");
}
扩展资料:
0的阶乘
0!=1。
由于正整数的阶乘是一种连乘运算,而0与任何实数相乘的结果都是0。所以用正整数阶乘的定义是无法推广或推导出0!=1的。即在连乘意义下无法解释“0!=1”。
给“0!”下定义只是为了相关公式的表述及运算更方便。
参考资料来源:百度百科-阶乘