题目描述
解题思路
这个题的意思是求N!的位数,一个数的位数等于(int)lg(N) + 1,现在是N的阶乘的位数,根据对数函数的性质,直接加起来就行了。
lg(N!) = (int)(lg1 + lg2 + … + lgN) + 1
AC代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; ++i)
{
int num;
cin >> num;
double res = 0;
for (int i = 1; i <= num; ++i)
{
res += log10(i);
}
cout << (int)res+1 << endl;
}
return 0;
}