C解法

更新中
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

JS解法

步骤:
输入解析:从输入中读取 a、b 和 count。
计算可能的执行时长:遍历所有 i 从 0 到 count,计算每一种任务分配方案 i * a + (count - i) * b 的执行时长。
去重与排序:利用 Set 自动去重并生成唯一的执行时长,然后将其转换为数组并排序。
输出结果:格式化输出去重后的执行时长列表,返回一个用逗号分隔的字符串。

const readline = require("readline");

// 创建 readline 接口,用于读取标准输入
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

// 监听每一行输入,处理数据
rl.on("line", (line) => {
    // 将输入按逗号分割,并转换为数字数组
    const values = line.split(",").map(Number);

    // 调用 getResult 函数,并打印返回结果
    console.log(getResult(values[0], values[1], values[2]));
});

// 计算所有可能的执行时长
function getResult(a, b, count) {
    // 如果 count 为 0,返回空数组
    if (count === 0) return "[]";

    // 使用 Set 来存储所有可能的执行时长,自动去重
    const resultArr = new Set();

    // 遍历所有可能的任务分配比例,计算对应的时长
    for (let i = 0; i <= count; i++) {
        // 计算 i 个任务分配给 a,剩余的分配给 b
        resultArr.add(a * i + b * (count - i));
    }

    // 将 Set 转换为数组并按升序排序
    const sortedResults = Array.from(resultArr).sort((x, y) => x - y);

    // 返回格式化的结果,数组用逗号分隔
    return `[${sortedResults.join(", ")}]`;
}

 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

注意:

如果发现代码有用例覆盖不到的情况,欢迎反馈!会在第一时间修正,更新。
解题不易,如对您有帮助,欢迎点赞/收藏

注:本文转载自blog.csdn.net的CodeClimb的文章"https://blog.csdn.net/CodeClimb/article/details/144772704"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!