哪位大神路过看一下,时间超了;

#include <bits/stdc++.h>
using namespace  std;
int n,q; 
int  main( )     
{   
    cin>>q;
    for (int i=1;;i++)
    {
        int ji=1,cnt=0;
        for (int j=1;j<=i;j++)
        {
            ji*=j;
        }
        while (ji)
        {
            if (ji%10==0)
                cnt++;
            else 
                break;
        }
        if (cnt==q)
        {
            n=i;
            cout<<n;
            return 0;
        }
    }
    cout<<"No solution";
    return 0;
}

4 条评论

  • 666还是超时

  • 我去查了一下
    输入输出加速
    通过取消C++ IO流与C的同步以及解除cin和cout的绑定,可以显著提高输入输出速度。具体代码如下:
    std::ios::sync_with_stdio(false);

  • @ 2026-04-03 11:43:03

    o-o

  • @ 2026-03-30 20:52:15

    阶乘直接for循环求解会超int 或者是 Long Long 的范围。第一,你可以用高精度数组来求解,最后用for循环判断0的个数。第二,因为一个数乘一个数,当它们具有一个5因子和一个2因子时,它们的乘积后才会有0.这道题目中可以不用判断2因子的个数,因为这远大于5因子的个数

    • @ 2026-03-30 20:54:36

      第一种高精度数组如果不知道的话可以去网上搜一下,这种做法比较容易理清思路。第二种方法你现在就能做,但是思路可以不太好整理清楚

  • 1

信息

ID
1009
难度
5
分类
(无)
标签
递交数
152
已通过
47
通过率
31%
被复制
7
上传者