HDUOJ 1018 Big Number(数论)
solution:这个题目大意是求一个数的阶乘的位数,咱们很容易想到一个数的位数为(int)log10(n) + 1,故数n的阶乘的位数为(int)log10(1 * 2 * 3 * … * n) + 1
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t, n;
cin >> t;
while (t--)
{
cin >> n;
double s = 0;
for (int i = 1; i <= n; ++i)s += log10(i);
cout << int(s) + 1 << endl;
}
return 0;
}