#include <cstdio>
#include <cmath>
#define pi 3.14159265
#define e 2.718281828
int main()
{
int n,num;//所求为n!的位数,num为位数
scanf("%d",&n);
if(n==0)
{
num=1;
}
else
{
num=(int)((0.5*log(2*pi*n) n*log(n)-n)/log(10)) 1;
}
printf("%d",num);
}
使用斯特林公式,n!约等于sqrt(2*pi*n)*(n/e)^n,如不理解需更多信息或者有使用高精度(long long不够)的需求继续追问