80分求救!此题第一点TLE!
查看原帖
80分求救!此题第一点TLE!
775551
caojiaming楼主2022/11/23 10:33

我这还开了long long

请看看

这题确实有普及/提高-

我先倒觉得他很入门

#include <bits/stdc++.h>
#define retrun return
using namespace std;
int jige5(int n)//算有多少个五
{
    int cnt=0;
    while(n%5==0)
    {
        n/=5;
        cnt++;
    }
    return cnt;
}
int geshu(int n)
{
    //看n!有多少个五就行了
    if(n<5)
    {
        retrun 0;
    }
    int sum=0;
    for(int i=5;i<=n;i+=5)
    {
        sum+=jige5(i);
    }
    return sum;//切记return
}
int main()
{
    long long sum=0;
    int n;
    scanf("%d",&n);//scanf卡压时间
    //预期是TLE
    //始终不敢交,最后终于敢交上去,发现第一点果真TLE了,输入为100000000
    //开了O2也没解决
    //求助
    for(int i=5;i<=n;i++)
    {
        sum+=geshu(i);
    }
    printf("%lld",sum);
    retrun 0;
}
2022/11/23 10:33
加载中...