V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
good1uck
V2EX  ›  C++

求助 C/C++:简单题 OJ 超时找不到原因

  •  
  •   good1uck · 2020-01-19 02:32:30 +08:00 · 2286 次点击
    这是一个创建于 1769 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大佬们,帮我看看代码超时的原因,题目是简单难度,两份代码没太大区别,时间复杂度一样,可是一个 3000ms 一个 14ms

    OJ(可能要简单地注册一个账号才能用): http://tk.hustoj.com/problem.php?id=1928
    不超时版本代码: https://segmentfault.com/n/1330000021618399/raw?token=e7f1f2076ee67c5872775cb23851c0fe

    超时版本代码(详细注释): https://segmentfault.com/n/1330000021618396/raw?token=aa9e86325930e98c75c35551c948c62d

    没人的话我明天再来问
    2 条回复    2020-01-19 03:33:01 +08:00
    geelaw
        1
    geelaw  
       2020-01-19 02:54:04 +08:00   ❤️ 2
    因为第二段代码每个月的天数是错误的,如果其中一个日期不在错误的范围内,则会导致有符号整数加法溢出,从而可能无法停下。实际情况很可能是 d1 在不断增加,直到绕 int 范围一圈。
    good1uck
        2
    good1uck  
    OP
       2020-01-19 03:33:01 +08:00 via Android
    @geelaw 明白了,感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.