我在codechef上针对问题代码FCTRL给出了此解决方案。

我看到其他人使用相同语言c的编译时间(我使用的是c++ gcc 4.8.1)要少一些,
我的是0.46秒,而他们是0.23秒

如果可以的话,有人可以帮助我减少时间吗?

#include<iostream>
using namespace std;
int main()
{
    long int t,i,temp;
    cin>>t;
    long int n[t],a[t];
    for(i=0;i<t;i++)
    {
        temp=1;
        a[i]=0;
        cin>>n[i];
        while(temp)
        {
            temp=n[i]/5;
            a[i]+=temp;
            n[i]=n[i]/5;
        }
    }
    for(i=0;i<t;i++)
    cout<<a[i]<<"\n";

    return(0);
}

最佳答案

根据您的描述,由于您正在使用c++,而他们正在使用c,这可能是由于编译器如何处理每条指令。

您也可以尝试更换

temp=n[i]/5;
a[i]+=temp;
n[i]=n[i]/5;

通过
temp=n[i]/5;
a[i]+=temp;
n[i]=temp;    //why compute the value again

看看时间是否减少

07-28 02:42
查看更多