N!的位数
提示:整数K的位数(int)log10(N)+1
N!=1*2*......*N
整数N!的位数(int)log10(1*2*......*N)+1
log10(1*2*......*N)
提示:整数K的位数(int)log10(N)+1
N!=1*2*......*N
整数N!的位数(int)log10(1*2*......*N)+1
log10(1*2*......*N)
=log10(1)+log10(2)+......+log10(N)
简单代码实现:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long T,ans;
int num;
double sum;
cin>>T;
while(T--)
{
sum=0;
cin>>num;
for(int i=2;i<=num;i++)
sum+=log10(i+0.00);
ans=(int)sum+1;
cout<<ans<<endl;
}
}