求n!有多少位
1. log10(n!)=log10(1)+···log10(n)
2. Stirling公式 当n->无穷
故n!的位数为
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <iostream>
#define PI acos(-1)
#define e 2.718281828
using namespace std;
int main()
{
int t,n;
int ans;
cin>>t;
while(t--)
{
cin>>n;
ans=(int)(1.0/2.0*log10(2*PI*n)+1.0*n*log10(n/e)+1);
cout<<ans<<endl;
}
return 0;
}
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,test,i,ans;
double t;
cin>>test;
while(test--)
{
cin>>n;
t=0;
for(i=2;i<=n;i++)
t+=log10(i*1.0);
ans=int(t)+1;
cout<<ans<<endl;
}
return 0;
}