You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中for循环超时终止(TLE)问题的解决方法

解决Project Euler第1题超时问题

题目要求

  • 给定数字n,计算所有小于n的3和5的倍数之和;
  • 输入包含t个数字,数字以换行分隔。

遇到的问题

我能算出正确结果,但6个测试用例里有2个触发了time limit exceeded超时错误,剩下4个能正常通过。

我的尝试代码

版本1

function main() {
  var t = parseInt(readLine());
  for (var a0 = 0; a0 < t; a0++) {
    var n = parseInt(readLine());
    // 我的代码开始
    let total = 0;
    for (let x = 0; x < n / 3; x++) {
      total += 3 * x;
    }
    for (let x = 0; x < n / 5; x++) {
      if (x % 3 !== 0) total += 5 * x;
    }
    console.log(total)
    // 我的代码结束
  }
}

版本2(优化乘法操作)

function main() {
  var t = parseInt(readLine());
  for (var a0 = 0; a0 < t; a0++) {
    var n = parseInt(readLine());
    // 我的代码开始
    let total = 0;
    let totalTemp = 0
    for (let x = 0; x < n / 3; x++) {
      total += x;
    }
    for (let x = 0; x < n / 5; x++) {
      if (x % 3 !== 0) totalTemp += x;
    }
    total = totalTemp * 5 + total * 3;
    console.log(total);
    // 我的代码结束
  }
}

求助

现在需要解决超时问题,有没有更高效的计算方法?

内容的提问来源于stack exchange,提问作者asnath085

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:05:06