N!的位数,好算法,转摘
#include
#include
const double pi = 3.14159265;
int main()
{
int test, n;
double a;
scanf("%d", &test);
while (test--)
{
scanf("%d", &n);
if (n == 1)
printf("%d\n", 1);
else
{
a = ceil((n * log((double)n) - n + 0.5 * log(2.0 * n * pi)) / log (10.0));
printf("%.0lf\n",a);
}
}
return 0;
}
浙公网安备 33010602011771号