整数a的位数为(int)log10(a)+1,则计算N!,可以用(int)log10(1)+log10(2)+...+log10(n)+1。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, num;
cin >> n;
for (int i = 0; i < n; i++)
{
double totalDigit = 0;
cin >> num;
for (int j = 1; j <= num; j++)
{
totalDigit += log10(j);
}
cout << int(totalDigit + 1) << endl;
}
return 0;
}
继续加油。