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

SoloLearn蜗牛爬井项目代码问题:输入42失败如何修改?

解决SoloLearn JavaScript「蜗牛爬井」项目的代码问题

你的代码存在两个关键问题,导致无法适配所有测试用例:

  1. 语法错误:for循环未用大括号包裹循环体,且存在多余的闭合大括号。原代码中只有i+=5会被重复执行,count++仅运行一次,完全不符合计数逻辑。
  2. 逻辑错误:没有遵循「蜗牛爬井」的核心规则——蜗牛白天向上爬5单位,夜晚会下滑2单位(最后一天爬出井口后不会下滑)。原代码只计算了直接除以5的次数,忽略了夜晚下滑的情况。

修正后的代码(循环模拟版)

function main() {
    var depth = parseInt(readLine(), 10);
    
    let count = 0;
    let currentPosition = 0;
    
    while (true) {
        count++;
        // 模拟白天爬升
        currentPosition += 5;
        // 检查是否已爬出井口
        if (currentPosition >= depth) {
            break;
        }
        // 模拟夜晚下滑
        currentPosition -= 2;
    }
    
    console.log(count);
}

修正后的代码(数学公式版,更高效)

function main() {
    var depth = parseInt(readLine(), 10);
    if (depth <= 5) {
        console.log(1);
        return;
    }
    // 最后一天爬5直接出去,前面每天净爬3
    const days = Math.ceil((depth - 5) / 3) + 1;
    console.log(days);
}

验证测试用例

  • 输入42:(42-5)=37,37除以3向上取整为13,加1得14天。第14天白天爬5后位置达44≥42,符合规则。
  • 输入128:(128-5)=123,123除以3得41,加1得42天。第42天白天爬5刚好到达128,符合规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:35:23