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;
}
posted @ 2008-04-20 10:12  dc0453  阅读(128)  评论(0)    收藏  举报