这里有两个ACM 试题的代码 HDU 1018 请大神看看为什么第一个超时,第二个却AC了,在线等。

2025-03-03 21:08:57
推荐回答(2个)
回答1:

2个除了参数一模一样啊,我直接复制了你第一个代码,也是AC的。不信你试试看。

---------------------------------------------------------------------------------------------------------------------------

对于楼下说的,没用过G++,不过确实421MS有点渣,用斯特林公式的话快多了。

#include
#include

#define e 2.71828182

int main()
{

   int N,n;
   double num;
   while(scanf("%d",&N)!=EOF)
   {
       while(N--)
       {
           scanf("%d",&n);
           num=(double)n*log10(n*1.0/e)+0.5*log10(2.0*n*3.1415926);

           printf("%d\n",(int)num+1);
       }
   }
   return 0;

}

回答2:

主要是你的代码容易卡在1000ms上,有时候900+ms就能过,有时候1000+ms就超时
应该尝试提升效率,避免卡在时限上